Я хотел бы выполнить одиночный оператор php, например if(function_exists("my_func")) echo 'function exists';
, непосредственно с командной строкой, не используя отдельный файл php.
Как это возможно?
Я хотел бы выполнить одиночный оператор php, например if(function_exists("my_func")) echo 'function exists';
, непосредственно с командной строкой, не используя отдельный файл php.
Как это возможно?
Если вы собираетесь делать PHP в командной строке, я рекомендую установить phpsh, достойную оболочку PHP. гораздо веселее.
В любом случае, команда php предлагает два переключателя для выполнения кода из командной строки:
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
Вы можете использовать php -r switch как таковой:
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
Это тип lame по сравнению с phpsh, но если вы не хотите устанавливать удивительная интерактивная оболочка для php, созданная facebook, чтобы получить завершение вкладки, историю и т.д., затем использовать -a как таковой:
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
Если он не работает на вашем поле, как на моем ящике * es * ( проверено на Ubuntu и Arch), то возможно, ваша настройка PHP нечеткий или сломанный. Если вы запустите эту команду:
php -i | grep 'API'
Вы должны видеть:
Server API => Command Line Interface
Если вы не, это означает, что возможно, другая команда предоставит CLI SAPI. Попробуйте php-cli, возможно, это пакет или команда, доступная в вашей ОС.
Если вы делаете, посмотрите, что ваша команда php использует интерфейс командной строки (интерфейс командной строки) SAPI (API-интерфейс сервера), затем запустите php -h | grep code
в , чтобы узнать, какой сумасшедший коммутатор - поскольку это hasn 't изменен на год - позволяет запускать код в вашей версии/настройке.
Еще несколько примеров, чтобы убедиться, что он работает в моих боксах:
>>> 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
Если он есть, вы получите текст. Если нет, вы ничего не получите.
Ты можешь использовать:
echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php
Короткий тег "<? =" Также может быть полезен:
echo '<?= 8+7+9 ;' | php
Закрывающий тег "?>" Необязателен, но не забывайте последний ";" !