Как передать параметры в скрипт PHP через веб-страницу?

Я вызываю PHP-скрипт всякий раз, когда загружается веб-страница. Тем не менее, есть параметр, который должен запускать скрипт PHP (который я обычно передаю через командную строку, когда я тестирую скрипт).

Как передать этот аргумент каждый раз, когда скрипт запускается при загрузке страницы?

Предположительно, вы передаете аргументы в командной строке следующим образом:

php /path/to/wwwpublic/path/to/script.php arg1 arg2 

… и затем доступ к ним в скрипте:

 <?php // $argv[0] is '/path/to/wwwpublic/path/to/script.php' $argument1 = $argv[1]; $argument2 = $argv[2]; ?> 

Что нужно делать при передаче аргументов через HTTP (доступ к скрипту через Интернет), используется строка запроса и доступ к ним через суперглобальный файл $ _GET:

Перейдите на страницу http://yourdomain.com/path/to/script.php?argument1=arg1&argument2=arg2.

… и доступ:

 <?php $argument1 = $_GET['argument1']; $argument2 = $_GET['argument2']; ?> 

Если вы хотите, чтобы сценарий запускался независимо от того, где вы его вызываете (в командной строке или в браузере), вам понадобится следующее:

EDIT: как отметил Ктулху в комментариях, самый прямой способ проверить, в какой среде вы работаете, – использовать константу PHP_SAPI . Я обновил код соответственно:

 <?php if (PHP_SAPI === 'cli') { $argument1 = $argv[1]; $argument2 = $argv[2]; } else { $argument1 = $_GET['argument1']; $argument2 = $_GET['argument2']; } ?> 
 $argv[0]; // the script name $argv[1]; // the first parameter $argv[2]; // the second parameter 

Если вы хотите, чтобы весь сценарий запускался независимо от того, где вы его вызываете (в командной строке или в браузере), вам понадобится следующее:

 <?php if ($_GET) { $argument1 = $_GET['argument1']; $argument2 = $_GET['argument2']; } else { $argument1 = $argv[1]; $argument2 = $argv[2]; } ?> 

Для вызова из командной строки chmod 755 /var/www/webroot/index.php и использования

 /usr/bin/php /var/www/webroot/index.php arg1 arg2 

Для вызова из браузера используйте

 http://www.mydomain.com/index.php?argument1=arg1&argument2=arg2