La ricerca di un file con un nome specifico con qualsiasi estensione

Si prega di notare che io voglio il vano numero per cambiare.

<?php
    $compartment = "1";

        /* HERE I NEED SOME SCRIPT TO FIND THE EXTENSION OF THE FILE NAME $compartment AND TO SAVE THAT AS A VARIABLE NAMED 'EXTENSION'.*/

    if (file_exists($compartment.$extension)) {
        echo "$compartment.$extension exists!
    } else {
        echo "No file name exists that is called $compartment. Regardless of extension."
    }
?>


<?php
    $compartment = "2";

        /* HERE I NEED SOME SCRIPT TO FIND THE EXTENSION OF THE FILE NAME $compartment AND TO SAVE THAT AS A VARIABLE NAMED 'EXTENSION'.*/

    if (file_exists($$compartment.$extension)) {
        echo "$compartment.$extension exists!
    } else {
        echo "No file name exists that is called $compartment. Regardless of extension."
    }
?>

Grazie!

Se c’è più di uno? Qualsiasi modo, è possibile utilizzare glob.
E che cosa ti aspetti di trovare? Ricerca in solo 1 cartella specifica o di ricerca in tutte le cartelle a partire da uno specifico? Non una corrispondenza parziale qualificare o il nome del file completo match? Comunque, si potrebbe desiderare di controllare il opendir e readdir () funzioni in PHP di riferimento
Lo sarà solo un file con quel nome, quindi non ho bisogno di preoccuparsi di più partite. Le corrispondenze parziali non deve essere restituita. I. e. Voglio tornare in 1 e 13 separatamente.

OriginaleL’autore Andy Cheeseman | 2010-07-08

2 Replies
  1. 20

    È necessario glob().

    $compartment = "2";
    
    $files = glob("/path/to/files/$compartment.*"); //Will find 2.txt, 2.php, 2.gif
    
    //Process through each file in the list
    //and output its extension
    if (count($files) > 0)
    foreach ($files as $file)
     {
        $info = pathinfo($file);
        echo "File found: extension ".$info["extension"]."<br>";
     }
     else
      echo "No file name exists called $compartment. Regardless of extension."

    a proposito, che cosa stai facendo qui, è il pianto per un ciclo. Non ripetere i vostri blocchi di codice, ma avvolgere uno di loro in questo modo:

     $compartments = array(1, 3, 6, 9); //or whichever compartments 
                                        //you wish to run through
    
     foreach ($compartments as $compartment)
      {
       ..... insert code here .......
      }
    Grazie. Ho bisogno di fare riferimento a “recuperato” file di un paio di volte all’interno del codice. Questo sarà un problema?
    no, fintanto che si sta facendo all’interno del foreach $files as $file loop. (È anche possibile utilizzare la variabile al di fuori di esso, ma poi si deve scegliere quale.)

    OriginaleL’autore

  2. 3

    Look:

    • glob — Trova i percorsi che corrispondono a un modello
    • fnmatch — Match filename contro un modello
    • pathinfo — Restituisce informazioni circa il percorso di un file
    +1 per i collegamenti manuali.

    OriginaleL’autore

Lascia un commento