J'écris une page PHP qui génère un flux de podcast en raclant une page HTML existante. Tout fonctionne très bien, mais un de mes fichiers mp3 donne une erreur "filesize(): stat a échoué". Autant que je peux dire, le fichier n'est pas corrompu, et il joue parfaitement bien. J'ai également ré-uploadé le fichier sur le serveur. Il se situe dans la moyenne de toutes les tailles de fichiers, donc je ne pense pas que le fichier soit trop grand. Parce que tous les autres fichiers renvoie une taille de fichier, je suppose que le problème est avec le fichier mp3, pas avec la configuration de mon serveur. Y a-t-il autre chose que je devrais vérifier?PHP filesize() fonctionne sur tous les fichiers sauf un, donne stat erreur échouée
est ici la partie pertinente de mon code:
$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);
Comme demandé: (les gens signalent les modifications Ceci est ma première question ici ..)
Le nom de fichier est « 12-20- 09_AM_Podcast.mp3" qui suit la convention de nommage de tous les fichiers et tous les fichiers ont des autorisations de 644. le plein code d'erreur est
<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 />
Le nom de fichier contient-il des caractères non-ASCII ou des caractères spéciaux() []? De plus, quand stat échoue, n'y a-t-il pas habituellement un code d'erreur? –
Étant donné qu'il s'agit d'une simple fonction d'appel en cas d'échec, vous devez afficher le nom de fichier réel (éventuellement les permissions sur le fichier) –
Vérifiez que votre serveur Web dispose de privilèges suffisants pour y accéder. – zneak