PHP文件大小()适用于所有,但一个文件,使统计失败的错误

StackOverflow https://stackoverflow.com/questions/2203679

  •  18-09-2019
  •  | 
  •  

我正在写生成通过刮削现有的HTML页面播客饲料PHP页面。一切都很正常,但我的mp3文件一个提供了一个“文件大小():Stat失败”的错误。作为最好的,我可以告诉大家,该文件没有损坏,它起到完美的罚款。我也重新上传文件到服务器。它属于所有文件大小的中间范围,所以我不认为该文件是太大。由于所有其他文件返回一个文件的大小,我假设的问题是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 />
有帮助吗?

解决方案

有关某种原因上domain.org网络服务器未返回Content-Length报头字段,这是造成 filesize() 失败。

如果该文件被存储在本地, filesize() 该文件的本地副本来代替。如果不是这样,因为它是domain.org的web服务器上的一个问题,你不能修复这个问题。你可以解决此问题由本地下载文件,并检查 filesize() 然后,但这将您的网页majorly放缓

如果该文件存储在本地,再次检查文件名,或者你的锚。您可能拼错一个(或两个)和Apache mod_speling是修复它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top