Presumiblemente, está pasando los argumentos en la línea de comando de la siguiente manera:
php /path/to/wwwpublic/path/to/script.php arg1 arg2
... y luego acceder a ellos en el script de esta manera:
<?php
// $argv[0] is '/path/to/wwwpublic/path/to/script.php'
$argument1 = $argv[1];
$argument2 = $argv[2];
?>
Lo que debe hacer al pasar argumentos a través de HTTP (acceder al script a través de la web) es usar la cadena de consulta y acceder a ellos a través de la superglobal $ _GET:
Ir http://yourdomain.com/path/to/script.php?argument1=arg1&argument2=arg2
... y acceso:
<?php
$argument1 = $_GET['argument1'];
$argument2 = $_GET['argument2'];
?>
Si desea que el script se ejecute independientemente de desde dónde lo llame (línea de comando o desde el navegador) querrá algo como lo siguiente:
EDITAR: como señaló Cthulhu en los comentarios, la forma más directa de probar en qué entorno está ejecutando es usar 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'];
}
?>