Es de suponer que estás pasando los argumentos de la línea de comandos de la siguiente manera:
php /path/to/wwwpublic/path/to/script.php arg1 arg2
... y luego acceder en el guión de esta manera:
<?php
// $argv[0] is '/path/to/wwwpublic/path/to/script.php'
$argument1 = $argv[1];
$argument2 = $argv[2];
?>
Lo que hay que tener al pasar argumentos a través de HTTP (accediendo a la secuencia de comandos en la web) está utilizando la cadena de consulta y acceder a ellos a través de $ _GET superglobal:
Ir a http://yourdomain.com/path/to/script.php?argument1=arg1&argument2=arg2
... y el acceso:
<?php
$argument1 = $_GET['argument1'];
$argument2 = $_GET['argument2'];
?>
Si desea que el script se ejecute independientemente del lugar en el que lo llamó (línea de comandos o desde el navegador) que querrá algo como lo siguiente:
EDIT: como señaló Cthulhu en los comentarios, la forma más directa de probar qué entorno está ejecutando es utilizar la constante PHP_SAPI. He actualizado el código en consecuencia:
<?php
if (PHP_SAPI === 'cli') {
$argument1 = $argv[1];
$argument2 = $argv[2];
}
else {
$argument1 = $_GET['argument1'];
$argument2 = $_GET['argument2'];
}
?>
¿Cómo se ejecuta? – zerkms
¿Puedes publicar tu código, por favor? – SenorAmor
por lo que desea ejecutar una línea de comando? o un script php? –