php filectime返回错误

时间:2015-06-20 01:55:16

标签: php mysql

我目前正在尝试创建一个可以显示我拥有的所有数字电影的网站。我目前正在编写一个页面来扫描电影目录,并在那里读取每部电影并提取名称并将其插入我的mysql数据库。

我还需要从文件中提取创建日期并插入它。然而,当我在这里搜索OS时,我尝试了所有可以找到的例子,我得到了所有这些错误,无法弄清楚错误的来源。我还需要以某种方式格式化创建日期,以使其符合MySQL数据库中的格式。

我正在开发基于Windows的机器。

代码:

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

1 个答案:

答案 0 :(得分:1)

经过一段时间阅读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>';