PHP: ¿Qué hay de malo en este código y por qué no se incrementa la variable?
Frecuentes
Visto 74 veces
0
$blogDir = 'blog/';
$blogdirHandle = opendir( $blogDir );
$checkingFile;
$number = 0;
$codeNumber = '-'.$number.'-';
if( $blogdirHandle = opendir( 'blog/' ) )
{
while( ( $checkingFile = readdir( $blogdirHandle ) ) !== false )
{
if( $checkingFile != '.' && $checkingFile != '..' && !is_dir( $checkingFile ) && strpos( $checkingFile, $codeNumber ) !== false )
{
$number++;
}
}
closedir( $blogdirHandle );
}
Lo que intento hacer es:
Vaya al directorio $blogDir y busque un archivo que tenga el mismo $codeNumber ( -$number- ), y si se encuentra un archivo, aumente $number en uno y busque hasta que se busquen todos los archivos. Por alguna razón no está funcionando. No aumentará el valor de $number, aunque haya archivos con el mismo $codeNumber en el directorio. ¿Alguna ayuda?
1 Respuestas
7
Una vez que incrementas $number
, necesita reasignar $codeNumber
dentro de tu bucle:
if( $blogdirHandle = opendir( 'blog/' ) )
{
while( ( $checkingFile = readdir( $blogdirHandle ) ) !== false )
{
if( $checkingFile != '.' && $checkingFile != '..' && !is_dir( $checkingFile ) && strpos( $checkingFile, $codeNumber ) !== false )
{
$number++;
$codeNumber = '-'.$number.'-';
}
}
closedir( $blogdirHandle );
}
respondido 09 mar '12, 22:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php or haz tu propia pregunta.
Sí. Muchas gracias. Sabía que la respuesta era algo estúpidamente simple como eso, pero simplemente no podía señalarlo. - usuario1219742
Por cierto, también hay un problema con la llamada a is_dir(). Necesitas agregarle el directorio blog/ así: !is_dir( $blogDir.$checkingFile ) - Sin embargo, funciona de todos modos, porque si el archivo no existe, devuelve falso. - pglhall
podría tener sentido poner
$codeNumber = '-'.$number.'-';
al comienzo del tiempo, en lugar de afuera, o en el si - Ascherer