PHP para principiantes: ¿Es Utilización de Exec práctica estándar de comandos?

StackOverflow https://stackoverflow.com/questions/4000403

  •  25-09-2019
  •  | 
  •  

Pregunta

Estoy empezando php. Tengo curiosidad si hay una mejor manera de hacer esto. Esto muestra todos mis guiones en la misma carpeta que este script.

No estoy seguro de si es normal utilizar el comando exec. No parece muy portátil.

<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>
¿Fue útil?

Solución

Hay funciones de directorio para este tipo de operaciones: http: //www.php. net / manual / en / ref.dir.php

Otros consejos

"exec" es por culpa portátil es una API! :-) Lo que no es portátil es la cadena que representa la línea de comandos de invocación que a través de "ejecutivo".

En este caso se puede utilizar una API de PHP para leer el directorio. Eso es portátil en cada sistema operativo que utiliza en su servidor.

Ejemplo: dir clase en PHP

  

¿Utilizar el ejecutivo de la práctica estándar de comandos?

No. Usando exec para interactuar con el sistema operativo anfitrión es una práctica muy no portátil. Para prácticamente cualquier situación, no es una solución independiente del sistema operativo; en este caso particular, se pueden encontrar todos los archivos en el directorio actual con glob , readdir o scandir .

El uso de eval en un programa que acepta cualquier forma de entrada de usuario también a menudo conduce a graves riesgos de seguridad. Su programa no sufre de este tipo de riesgos en la actualidad, pero también es muy trivial.

Sí, hay una forma mejor de hacer lo que está buscando. Hay pegote o readdir para empezar.

En cuanto a la "práctica uniforme va", verá un montón de esto en PHP tierra. Si un desarrollador no sabe enorme base de código de PHP muy bien, pero no sé la concha va a terminar usando Exec y invertidas ( ``) en todo el lugar para realizar su trabajo. Es una práctica habitual que un porcentaje de los desarrolladores de PHP odio, y otro porcentaje no podía vivir sin él. Hay que acostumbrarse a verlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top