Domanda

Sono solo iniziando php. Sono solo curioso di sapere se c'è un modo migliore per farlo. Questa mostra tutti i miei script nella stessa cartella di questo script.

Non sono sicuro se è standard per utilizzare il comando exec. Non sembra molto portabile.

<html>
<head>
   <title>My PHP Practice Scripts</title>
</head>

<body>
   <center><h1>PHP Scripts</h1></center>
   <?php
      exec("ls -1 *.php", $output);

      foreach ($output as &$tmp){
         echo "<a href=\"$tmp\">$tmp</a><br>";
      }
   ?>
</body>
</html>
È stato utile?

Soluzione

Ci sono funzioni di directory per tali operazioni: http: //www.php. net / manuale / it / ref.dir.php

Altri suggerimenti

"exec" è allucinante portatile è un'API! :-) Ciò che non è portatile è la stringa che rappresenta la linea di comando si invoke attraverso "exec".

In questo caso è possibile utilizzare un API PHP per leggere la directory. Questo è il portatile su ogni sistema operativo di utilizzare sul vostro server.

Esempio: dir classe in PHP

  

E 'sicuro utilizzare la prassi comando exec?

No. Utilizzando exec per interagire con il sistema operativo host è una pratica decisamente non portabile. Per qualsiasi situazione, non v'è una soluzione indipendente dal sistema operativo; in questo caso particolare, si possono trovare tutti i file nella directory corrente con glob , readdir o scandir .

Utilizzando eval in un programma che accetta qualsiasi forma di input da parte dell'utente anche spesso porta a gravi rischi per la sicurezza. Il vostro programma non soffre di tali rischi attualmente, ma è anche molto banale.

Sì, c'è un modo migliore per fare quello che stai cercando. C'è glob o readdir per cominciare.

Per quanto riguarda la "pratica standard va", vedrete un sacco di questo paese in PHP. Se uno sviluppatore non sa enorme base di codice PHP molto bene, ma sa il guscio finiranno utilizzando exec e apici inversi ( ``) in tutto il luogo per ottenere il loro lavoro fatto. E 'una pratica standard che una certa percentuale di sviluppatori PHP odio, e un'altra percentuale non poteva vivere senza. Abituati a vederlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top