FAQ
Buenas,



Me pasa algun muy raro... en una pagina abro un directorio con la clase dir
para cargar en un array una lista de jpg de un directoriio. Aquí va el
código:



$path="imatges/$arr_imatges[$seleccio]/";

$directorio=dir("imatges");

$imatges = Array();



while ($archivo = $directorio->read())

{



$imatges[] = $archivo;





} // fi while

$directorio->close();





La pagina la tenía dentro de un directorio “test” en un hosting compartido
sin ningun problema. Mi sorpresa ayer fue cuando pasé la pagina al root y
deja de funcionar dándome este error:



“Fatal error: Call to a member function read() on a non-object in index2.php
on line 43”



Haciendo un echo de la variable $directorio me sale vacia!!! Y por lo tanto
no puede ejecutar la funcion read.



No entiendo nada... como puede ser que si todo está dentro del directorio
test funciona i en cambio en el root no chuta????? La variable $path es
correcta y todo esta bien...





Alguna idea? Gracias!!!



joan

Search Discussions

  • Joan Teixidó at Dec 19, 2006 at 11:12 pm
    Una pequña rectificacion en el codigo: la linia $directorio=dir("imatges")
    se ha de rectificar con $directorio=dir($path). En mi desesperación he
    probado de abrir diferentes directorios. De todas formas de ninguna de las
    dos formas funciona.

    Gracias


    -----Missatge original-----
    De: Joan Teixidó
    Enviat: dimecres, 20 / desembre / 2006 00:08
    Per a: Php-Es Llista Correu
    Tema: [PHP-ES] Duda inexplicable al abrir directorio

    Buenas,



    Me pasa algun muy raro... en una pagina abro un directorio con la clase dir
    para cargar en un array una lista de jpg de un directoriio. Aquí va el
    código:



    $path="imatges/$arr_imatges[$seleccio]/";

    $directorio=dir("imatges");

    $imatges = Array();



    while ($archivo = $directorio->read())

    {



    $imatges[] = $archivo;





    } // fi while

    $directorio->close();





    La pagina la tenía dentro de un directorio “test” en un hosting compartido
    sin ningun problema. Mi sorpresa ayer fue cuando pasé la pagina al root y
    deja de funcionar dándome este error:



    “Fatal error: Call to a member function read() on a non-object in index2.php
    on line 43”



    Haciendo un echo de la variable $directorio me sale vacia!!! Y por lo tanto
    no puede ejecutar la funcion read.



    No entiendo nada... como puede ser que si todo está dentro del directorio
    test funciona i en cambio en el root no chuta????? La variable $path es
    correcta y todo esta bien...





    Alguna idea? Gracias!!!



    joan







    __________ NOD32 1928 (20061219) Information __________

    This message was checked by NOD32 antivirus system.
    http://www.eset.com
  • Mariano Guezuraga at Dec 19, 2006 at 11:41 pm
    El día 19/12/06, Joan Teixidó escribió:
    Buenas,



    Me pasa algun muy raro... en una pagina abro un directorio con la clase
    dir
    para cargar en un array una lista de jpg de un directoriio. Aquí va el
    código:



    $path="imatges/$arr_imatges[$seleccio]/";

    $directorio=dir("imatges");

    $imatges = Array();



    while ($archivo = $directorio->read())

    {



    $imatges[] = $archivo;





    } // fi while

    $directorio->close();





    La pagina la tenía dentro de un directorio "test" en un hosting compartido
    sin ningun problema. Mi sorpresa ayer fue cuando pasé la pagina al root y
    deja de funcionar dándome este error:



    "Fatal error: Call to a member function read() on a non-object in
    index2.php
    on line 43"



    Haciendo un echo de la variable $directorio me sale vacia!!! Y por lo
    tanto
    no puede ejecutar la funcion read.
    No entiendo nada... como puede ser que si todo está dentro del directorio
    test funciona i en cambio en el root no chuta????? La variable $path es
    correcta y todo esta bien...





    Alguna idea? Gracias!!!



    joan

    Perdón si me equivoco, pero donde dice:
    $directorio=dir("imatges");

    ¿no debería decir?
    $directorio=new dir("imatges");
  • Satyam at Dec 20, 2006 at 2:07 pm
    Yo probaria en lugar de:


    $path="imatges/$arr_imatges[$seleccio]/";

    poner llaves:


    $path="imatges/{$arr_imatges[$seleccio]}/";

    Ocurre que al expandir la variable dentro del string, PHP puede no saber
    dónde termina la variable. El manual cita expresamente el caso de los
    arrays como un lugar donde usar las llaves para dejar en claro hasta donde
    abarca la variable. De otra manera, PHP expandiria $arr_imatges, cortando
    al encontrarse la llave, que como string no tiene valor, luego, pondria la
    llave, literalmente, y expandiria $seleccio independientemente. Las llaves
    le avisan que interprete la totalidad de la expresion.

    Satyam



    ----- Original Message -----
    From: "Joan Teixidó" <joan.teixido@ya.com>
    To: "Php-Es Llista Correu" <php-es@lists.php.net>
    Sent: Wednesday, December 20, 2006 12:07 AM
    Subject: [PHP-ES] Duda inexplicable al abrir directorio


    Buenas,



    Me pasa algun muy raro... en una pagina abro un directorio con la clase dir
    para cargar en un array una lista de jpg de un directoriio. Aquí va el
    código:



    $path="imatges/$arr_imatges[$seleccio]/";

    $directorio=dir("imatges");

    $imatges = Array();



    while ($archivo = $directorio->read())

    {



    $imatges[] = $archivo;





    } // fi while

    $directorio->close();





    La pagina la tenía dentro de un directorio "test" en un hosting compartido
    sin ningun problema. Mi sorpresa ayer fue cuando pasé la pagina al root y
    deja de funcionar dándome este error:



    "Fatal error: Call to a member function read() on a non-object in index2.php
    on line 43"



    Haciendo un echo de la variable $directorio me sale vacia!!! Y por lo tanto
    no puede ejecutar la funcion read.



    No entiendo nada... como puede ser que si todo está dentro del directorio
    test funciona i en cambio en el root no chuta????? La variable $path es
    correcta y todo esta bien...





    Alguna idea? Gracias!!!



    joan
  • Joan Teixidó at Dec 21, 2006 at 9:34 pm
    Gracias, lo tendré en cuenta para casos similares. Pero en este caso creo
    que no es el problema, ya que el mismo codigo funciona dentro del directorio
    "test" i en cambio no funciona en el root. Es más... la 1 i 2a vez q lo
    pruebo funciona en el root... pero a la 3a vez ya no va... no lo entiendo...

    Puede ser que haya algun tipo de límite en el número de veces que abrimos un
    directorio??? El hosting trabaja bajo windows i con PHP5...

    De momento no he encontrado solucion

    Gracias!

    joan

    -----Missatge original-----
    De: Satyam
    Enviat: dimecres, 20 / desembre / 2006 10:45
    Per a: Joan Teixidó; Php-Es Llista Correu
    Tema: Re: [PHP-ES] Duda inexplicable al abrir directorio

    Yo probaria en lugar de:


    $path="imatges/$arr_imatges[$seleccio]/";

    poner llaves:


    $path="imatges/{$arr_imatges[$seleccio]}/";

    Ocurre que al expandir la variable dentro del string, PHP puede no saber
    dónde termina la variable. El manual cita expresamente el caso de los
    arrays como un lugar donde usar las llaves para dejar en claro hasta donde
    abarca la variable. De otra manera, PHP expandiria $arr_imatges, cortando
    al encontrarse la llave, que como string no tiene valor, luego, pondria la
    llave, literalmente, y expandiria $seleccio independientemente. Las llaves
    le avisan que interprete la totalidad de la expresion.

    Satyam



    ----- Original Message -----
    From: "Joan Teixidó" <joan.teixido@ya.com>
    To: "Php-Es Llista Correu" <php-es@lists.php.net>
    Sent: Wednesday, December 20, 2006 12:07 AM
    Subject: [PHP-ES] Duda inexplicable al abrir directorio


    Buenas,



    Me pasa algun muy raro... en una pagina abro un directorio con la clase dir
    para cargar en un array una lista de jpg de un directoriio. Aquí va el
    código:



    $path="imatges/$arr_imatges[$seleccio]/";

    $directorio=dir("imatges");

    $imatges = Array();



    while ($archivo = $directorio->read())

    {



    $imatges[] = $archivo;





    } // fi while

    $directorio->close();





    La pagina la tenía dentro de un directorio "test" en un hosting compartido
    sin ningun problema. Mi sorpresa ayer fue cuando pasé la pagina al root y
    deja de funcionar dándome este error:



    "Fatal error: Call to a member function read() on a non-object in index2.php
    on line 43"



    Haciendo un echo de la variable $directorio me sale vacia!!! Y por lo tanto
    no puede ejecutar la funcion read.



    No entiendo nada... como puede ser que si todo está dentro del directorio
    test funciona i en cambio en el root no chuta????? La variable $path es
    correcta y todo esta bien...





    Alguna idea? Gracias!!!



    joan

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php



    __________ NOD32 1931 (20061220) Information __________

    This message was checked by NOD32 antivirus system.
    http://www.eset.com

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedDec 19, '06 at 11:08p
activeDec 21, '06 at 9:34p
posts5
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase