Я пишу страницу PHP, которая генерирует фид подкаста путем очистки существующей страницы HTML. Все отлично работает, но один из моих mp3-файлов выдает ошибку «filesize (): stat failed». Насколько я могу судить, файл не поврежден и прекрасно воспроизводится. Я также перезагружал файл на сервер. Он находится в среднем диапазоне всех размеров файлов, поэтому я не думаю, что файл слишком большой. Поскольку каждый второй файл возвращает размер файла, я предполагаю, что проблема связана с файлом mp3, а не с конфигурацией моего сервера. Есть что-то еще, что я должен проверить?
Вот соответствующая часть моего кода:
$i = 1; //skipping header row on table
do {
$tr = $table->find('tr', $i);
$date = $tr->find('div', 0)->plaintext;
$datetime = new DateTime($date);
$speaker = $tr->find('div', 1)->plaintext;
$title = $tr->find('div', 2)->plaintext;
$url = $tr->find('div', 3)->find('a', 0)->href;
$fullurl = "http://domain.org/resources/".$url;
$filesize = filesize($url); //<---works on every file except one
echo "<item><title>".$title."</title>\n";
echo "<description>".$title." - ".$datetime->format('D, M jS, Y')." - ".$speaker."</description>\n";
echo "<itunes:author>".$speaker."</itunes:author>\n";
echo "<enclosure url=\"".$fullurl."\" length=\"".$filesize."\" type=\"audio/mpeg\"/>\n";
echo "<guid isPermaLink=\"true\">".$fullurl."</guid>\n";
echo "<pubDate>".$datetime->format('r')."</pubDate>\n";
echo "<itunes:explicit>clean</itunes:explicit></item>\n\n";
$i++;
}while ($table->find('tr', $i) != NULL);
В соответствии с просьбой: (люди указывают на изменения? Это мой первый вопрос здесь ..)
Имя файла: «12-20-09_AM_Podcast.mp3», которое соответствует соглашению об именах для всех остальных файлов, и все файлы имеют разрешения 644. Полный код ошибки:
<b>Warning</b>: filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for audio/12-20-09_AM_Podcast.mp3 in <b>/homepages/1/d106955786/htdocs/victory/resources/podcast1.php</b> on line <b>45</b><br />