Jeśli zamierzasz robić PHP w linii poleceń, polecam zainstalować phpsh, a decent PHP shell. To o wiele więcej zabawy.
Zresztą polecenie php oferuje dwa przełączniki na wykonanie kodu z linii poleceń:
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
Można wykorzystać PHP -r przełączyć jako takie:
php -r 'echo function_exists("foo") ? "yes" : "no";'
Powyższy Polecenie PHP powyżej powinno być wyjścioweno
i zwraca0
jak widać:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
Kolejny zabawny przełącznik jest php -a:
-a Run as interactive shell
To rodzaj lame porównaniu phpsh, ale jeśli nie chcesz instalować the awesome interactive shell for php made by facebook to get tab completion, history, and so on, a następnie użyj -a jako taki:
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
Jeśli to nie działa na pudełku jak na moim komputerze * es * (badanego na Ubuntu i Arch), następnie prawdopodobnie Twoja konfiguracja PHP jest postrzępiony lub uszkodzony. Po uruchomieniu tego polecenia:
php -i | grep 'API'
Ty powinny patrz:
Server API => Command Line Interface
Jeśli nie, oznacza to, że może kolejna komenda zapewnia CLI SAPI. Wypróbuj php-cli, może to pakiet lub polecenie dostępne w twoim systemie operacyjnym.
Jeśli nie zobaczyć, że polecenie php używa CLI (Command Line Interface) SAPI (Server API), a następnie uruchomić php -h | grep code
do dowiedzieć się przełącznik, który szalone - co nie zmieniło się year- pozwala do uruchomienia kodu w twojej wersji/konfiguracji.
Innym kilka przykładów, by upewnić się, że działa na moich polach:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
Należy również pamiętać, że jest to możliwe, że rozszerzenie jest ładowany w CLI, a nie w CGI lub Apache SAPI.Jest prawdopodobne, że kilka aplikacji SAPI PHP używa różnych plików php.ini, np., np. /etc/php/cli/php.ini
vs /etc/php/cgi/php.ini
vs /etc/php/apache/php.ini
na polu Gentoo. Dowiedz się, który plik ini jest używany z php -i | grep ini
.
Wykonywanie funkcji function_exists() bez użycia innych plików zawierających funkcję zdefiniowaną przez użytkownika nie będzie zbyt dobre, z wyjątkiem testowania wersji PHP, którą można znaleźć w inny sposób. Jaką funkcję chcesz przetestować? –
Szukam testowania tej funkcji: sg_load() – Steve
Brzmi tak, jak naprawdę chcesz, aby dowiedzieć się, czy włączone jest rozszerzenie php sourceguardian? –