Estoy escribiendo una página PHP que genera un feed de podcast raspando una página HTML existente. Todo funciona bien, pero uno de mis archivos mp3 da un error "filesize(): stat failed". Lo mejor que puedo decir es que el archivo no está dañado y funciona perfectamente bien. También volví a subir el archivo al servidor. Se encuentra en el rango medio de todos los tamaños de archivo, por lo que no creo que el archivo sea demasiado grande. Debido a que cada otro archivo devuelve un tamaño de archivo, supongo que el problema es con el archivo mp3, no con la configuración de mi servidor. ¿Hay algo más que deba revisar?PHP filesize() funciona en todos los archivos menos uno, da error error stat
Aquí está la parte pertinente de mi código:
$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);
a lo solicitado: (¿Por qué la gente señalan ediciones Esta es mi primera pregunta aquí ..)
El nombre del archivo es "12-20- 09_AM_Podcast.mp3" , que sigue la convención de nombres de archivo de todos los demás, y todos los archivos tienen permisos de 644. el código de error completo es
<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 />
¿El nombre del archivo contiene caracteres no ASCII o caracteres especiales() []? Además, cuando falla la estadística, ¿no suele haber un código de error? –
Dado que es una llamada de función simple que falla, debe mostrar el nombre del archivo real (posiblemente también los permisos del archivo) –
Compruebe que su servidor web tenga suficientes privilegios para acceder a él. – zneak