如何制作一个 php 脚本来从任何目录读取文件名和详细信息并将其存储在数据库中?
How to make a php script that reads filenames and details from any directory and stores it on database?
我的服务器文件夹中有很多视频文件,所以不可能全部添加,我需要开发一个 php 脚本来读取文件夹的内容并填充我的数据库 table 包含文件名、大小、路径等详细信息。
此外,我需要使用该数据向用户显示视频列表,因此一切都必须准确。
请告诉我怎么做?
See here 查看如何遍历目录并获取文件名和文件大小。 (为简单起见,在此处复制和编辑)
$folder = '/my/path/to/dir';
foreach(glob($folder) as $file){
$size = filesize($file);
echo "Name=$file, size=$size<br />";
}
无需使用 echo
来显示结果,您只需使用 mysqli 或 PDO 函数来 运行 将 INSERT
查询插入到您的 table 中。由于这不是来自用户的输入,因此使用 prepare
和 bind
并不是必须的,但这样做是一种很好的做法(并且效率更高)。
然后,当您显示视频列表时,您将再次使用 mysqli 或 PDO 函数来 运行 一个 SELECT
查询,然后 echo
这些值以适当的方式 HTML语法。
我猜,根据您的问题,其中一些概念对您来说可能是新的。如果您不知道如何在 PHP 中编程或使用 SQL 或创建 HTML 页面,那么您将需要花一些认真的时间阅读教程并观看 youtube 视频和阅读书籍.
我建议您将 SPL(标准 PHP 库)中的迭代器用于 OOP 方法,对于递归迭代,您应该使用 DirectoryRecursiveIterator
;
$directoryIterator = new RecursiveDirectoryIterator("/path/");
$recursiveIterator = new RecursiveIteratorIterator($directoryIterator);
foreach ($recursiveIterator as $filename => $fileInfo) {
$filesize = $fileInfo->getSize();
$path = $fileInfo->getPath();
//insertDataIntoMysql($filename, $filesize, $filepath);
}
我的服务器文件夹中有很多视频文件,所以不可能全部添加,我需要开发一个 php 脚本来读取文件夹的内容并填充我的数据库 table 包含文件名、大小、路径等详细信息。 此外,我需要使用该数据向用户显示视频列表,因此一切都必须准确。 请告诉我怎么做?
See here 查看如何遍历目录并获取文件名和文件大小。 (为简单起见,在此处复制和编辑)
$folder = '/my/path/to/dir';
foreach(glob($folder) as $file){
$size = filesize($file);
echo "Name=$file, size=$size<br />";
}
无需使用 echo
来显示结果,您只需使用 mysqli 或 PDO 函数来 运行 将 INSERT
查询插入到您的 table 中。由于这不是来自用户的输入,因此使用 prepare
和 bind
并不是必须的,但这样做是一种很好的做法(并且效率更高)。
然后,当您显示视频列表时,您将再次使用 mysqli 或 PDO 函数来 运行 一个 SELECT
查询,然后 echo
这些值以适当的方式 HTML语法。
我猜,根据您的问题,其中一些概念对您来说可能是新的。如果您不知道如何在 PHP 中编程或使用 SQL 或创建 HTML 页面,那么您将需要花一些认真的时间阅读教程并观看 youtube 视频和阅读书籍.
我建议您将 SPL(标准 PHP 库)中的迭代器用于 OOP 方法,对于递归迭代,您应该使用 DirectoryRecursiveIterator
;
$directoryIterator = new RecursiveDirectoryIterator("/path/");
$recursiveIterator = new RecursiveIteratorIterator($directoryIterator);
foreach ($recursiveIterator as $filename => $fileInfo) {
$filesize = $fileInfo->getSize();
$path = $fileInfo->getPath();
//insertDataIntoMysql($filename, $filesize, $filepath);
}