Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087

    corretto uso di pathinfo()

    Gentilissimi,
    nella concretezza se uso il seguente codice
    devo riconoscere se nella cartella superiore c'è un file excel. Se c'è devo catturare il nome.
    Ecco la riga che mi dà errore $ext = $estens['extension']; dichiarando che extension non è il parametro corretto. Tuttavia cattura bene il nome dell'excel
    codice:
      if ($handle = opendir('./../')) {
          while (false !== ($file = readdir($handle))) { 
                  if ($file != "." && $file != "..") {
    		      $estens = pathinfo($file);
    			  $ext = $estens['extension'];  
    			      if($ext == "xls") {
    			         $name_excel = $estens['basename'];
    		          }
                  } 
          }
      }
    ecco invece il codice che non mi dà errore
    codice:
          if ($handle2 = opendir('./../')) {   
          while (false !== ($file = readdir($handle2))) { 
                   if ($file != "." && $file != "..") {
    		           $estens = pathinfo($file, PATHINFO_EXTENSION);
    			      if($estens == "xls") {
    			       $name_excel = $file;
    		          }
                  } 
          }  
       }
    Differenza e motivo dell'errore?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    sinceramente non ne ho idea...ma sono curioso di capire...
    dal manuale leggo
    The following associative array elements are returned: dirname, basename, extension (if any), and filename.
    l'unica cosa che mi fa pensare è "(if any)"...forse non ti legge l'estensione?
    prova a fare un
    codice:
    $estens = pathinfo($file);
    var_dump($estens);

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    effettivamente sembrano entrambe corretti boh

  4. #4
    L'array che pathinfo ti ritorna non contiene sempre tutti i parametri. Quando $file si riferisce ad esempio ad una cartella, 'extension' non viene impostato e ricevi un warning perchè stai cercando di accedere ad un elemento dell'array con un indice (extension, appunto) che non esiste.
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  5. #5
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    grazie a tutti per le risposte.
    se non dorvrò leggere da stringa, ma fare una ricerca reale nelle cartelle userò sempre
    pathinfo($file, PATHINFO_EXTENSION);

    tuttavia nell'esempio che ho postato (che non è tanto un esempio, ma un caso concreto) se controllo con
    print_r($estens);
    e anche con
    var_dump($estens);

    mi restituisce le tre voci dell'array tra le quali correttamente anche $estens['extension'] ....

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.