我目前正在尝试创建一个网站来显示我拥有的所有数字电影。我目前正在处理一个页面来扫描电影目录并读取其中的每部电影并提取名称并将其插入我的 mysql 数据库。
我还需要从文件中提取创建日期并插入它。然而,当我在操作系统上搜索时,我尝试了我能找到的所有示例,但所有这些示例都出错,并且无法弄清楚错误来自哪里。我还需要以某种方式格式化创建日期,使其适合 MySQL 数据库中的格式。
我正在一台基于窗口的机器上工作。
法典:
include("config.php");
echo '<ul>';
if ($handle = opendir('M:/Movies/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != '$RECYCLE.BIN' && $entry != 'System Volume Information' && $entry != '.' && $entry != '..') {
$replace = array(".avi",".mkv",".mp4");
$title = str_replace($replace, "", $entry);
$exists = mysql_query('SELECT * FROM `mdw_movies` WHERE `title` LIKE "'.$title.'%"');
$exists1 = mysql_num_rows($exists);
if ($exists1 == 0) {
$date = date('Y-m-d', filectime($entry)); // This is line 15
$query = "INSERT INTO `mdw_movies` (`title`) VALUES ('".$title."')";
mysql_query($query);
print "<li>Inserted Movie <b>".$title."</b> (<b>".$date."</b>).</li>";
}
}
}
}
echo '</ul>';
错误:
Warning: filectime(): stat failed for Assassin's Creed - Embers.mp4 in C:'xampp'htdocs'movies'read.php on line 15
我在阅读了一段时间的 filectime 上的 php 手册后找到了答案。我在 filectime() 函数中缺少该文件的目录列表。
这是我供人们参考的正确代码:
include("config.php");
$dir = 'M:/Movies/';
echo '<ol>';
if ($handle = opendir($dir)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != '$RECYCLE.BIN' && $entry != 'System Volume Information' && $entry != '.' && $entry != '..') {
$replace = array(".avi",".mkv",".mp4");
$title = str_replace($replace, "", $entry);
$exists = mysql_query('SELECT * FROM `mdw_movies` WHERE `title` LIKE "'.$title.'%"');
$exists1 = mysql_num_rows($exists);
if ($exists1 == 0) {
$date = date('Y-m-d', filectime($dir.$entry));
$query = "INSERT INTO `mdw_movies` (`title`,`posted`) VALUES ('".$title."','".$date."')";
mysql_query($query);
print "<li>Inserted Movie <b>".$title."</b> (<b>".$date."</b>).</li>";
}
}
}
}
echo '</ol>';