Я хотел бы выполнить один оператор php, такой как if(function_exists("my_func")) echo 'function exists';
, непосредственно с командной строкой, не используя отдельный файл php.Как выполнить PHP-код из командной строки?
Как это возможно?
Я хотел бы выполнить один оператор php, такой как if(function_exists("my_func")) echo 'function exists';
, непосредственно с командной строкой, не используя отдельный файл php.Как выполнить PHP-код из командной строки?
Как это возможно?
Если вы собираетесь делать PHP в командной строке, я рекомендую установить phpsh, a decent PHP shell. Это намного веселее.
Во всяком случае, команда РНР два переключателя для выполнения кода из командной строки:
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
Вы можете использовать РНР -r переключатель как таковой:
php -r 'echo function_exists("foo") ? "yes" : "no";'
выше PHP команда выше должна выходno
и 0
как вы можете видеть:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
Другой забавный переключатель PHP -a:
-a Run as interactive shell
Это рода хромой по сравнению с phpsh, но если вы не хотите, чтобы установить the awesome interactive shell for php made by facebook to get tab completion, history, and so on, затем использование -a как таковой:
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
Если он не работает на вашей коробке, как на моей коробке * эс * (испытанной на Ubuntu и Arch), то вероятно, ваша установка PHP нечеткое или сломанный. Если вы запустите эту команду:
php -i | grep 'API'
Вы должны см:
Server API => Command Line Interface
Если вы не, это означает, что может быть другая команда обеспечивает CLI SAPI. Попробуйте php-cli, возможно, это пакет или команда, доступная в вашей ОС.
Если вы видите, что ваша команда PHP использует CLI (интерфейс командной строки) SAPI (Server API), а затем запустить php -h | grep code
в выяснить, какой сумасшедший переключатель - как это не изменилось за год- позволяет для запуска кода в вашей версии/настройке.
Еще несколько примеров, просто чтобы убедиться, что он работает на моих коробках:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
Кроме того, обратите внимание, что это возможно, что расширение загружается в CLI, а не в CGI или Apache SAPI.Вероятно, что несколько PHP SAPI используют разные файлы php.ini, например. /etc/php/cli/php.ini
vs /etc/php/cgi/php.ini
vs /etc/php/apache/php.ini
на коробке Gentoo. Узнайте, какой файл ini используется с php -i | grep ini
.
В командной строке:
php -i | grep sourceguardian
Если это есть, то вы получите какой-нибудь текст. Если нет, вы ничего не получите.
Либо я слепой, либо этот ответ не имеет никакого отношения к вопросу. Как этот ответ должен отвечать на вопрос, спрашивая: «Как запустить PHP-код непосредственно из командной строки, не сохраняя PHP-код в' .php' файл? _ "? – trejder
@trejder На мгновение я подумал, не ответил ли я на неправильный вопрос, но потом посмотрел историю изменений и комментарии. Это отвечает тому, что действительно нужно OP: выяснение, было ли загружено определенное расширение PHP. С тех пор этот вопрос был перефразирован, поэтому сейчас он не подходит. –
Выполнение функции function_exists() без использования каких-либо других файлов, содержащих определенную пользователем функцию, не будет очень хорошим, за исключением тестирования версии PHP, которую вы можете узнать другими способами. На какую функцию вы хотите протестировать? –
Я ищу тестирование этой функции: sg_load() – Steve
Похоже, что вы действительно хотите узнать, включено ли расширение php sourceguardian? –