[php] 커맨드 라인에서 PHP 코드를 실행하는 방법?

if(function_exists("my_func")) echo 'function exists';별도의 PHP 파일을 사용하지 않고도 명령 줄을 사용하여 직접 단일 PHP 문을 실행하고 싶습니다 .

그게 어떻게 가능해 ?



답변

커맨드 라인에서 PHP를 사용하려면 괜찮은 PHP 쉘인 phpsh 를 설치하는 것이 좋습니다 . 훨씬 더 재미있다.

어쨌든 php 명령은 명령 행에서 코드를 실행하기위한 두 개의 스위치를 제공합니다 .

-r <code>        Run PHP <code> without using script tags <?..?>
-R <code>        Run PHP <code> for every input line

PHP의 -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 하지만 설치하지 않을 경우 얻을 페이스 북에 의해 만들어진 PHP의 멋진 대화 형 쉘을 탭 완성, 역사, 등 , 다음 과 같은 -a를 사용합니다 :

>>> php -a
Interactive shell

php > echo function_exists("foo") ? "yes" : "no";
no
php > 

내 상자 * es * ( 우분투 및 아치에서 테스트 됨)와 같이 상자에서 작동하지 않으면 PHP 설정이 흐리거나 깨졌을 수 있습니다. 이 명령을 실행하면 :

php -i | grep 'API'

당신 볼 수 있습니다 :

Server API => Command Line Interface

그렇지 않으면 ,이 방법은 어쩌면 또 다른 명령은 CLI의 SAPI를 제공합니다 . php-cli를 사용해보십시오. 아마도 OS에서 사용할 수있는 패키지 또는 명령 일 수 있습니다.

당신이 경우에 당신의 PHP 명령은 CLI (명령 줄 인터페이스) SAPI (서버 API)를 사용하고 있음을 알 다음 실행 php -h | grep code하는 미친 스위치를 찾아 – year-가이 변경되지 않았으로 버전 / 설정에서 코드를 실행할 수 있습니다.

내 상자에서 작동하는지 확인하기위한 또 다른 몇 가지 예 :

>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes

또한 확장이 CGI 또는 Apache SAPI가 아닌 CLI에로드 될 수 있습니다. 몇몇 PHP SAPI는 다른 php.ini 파일을 사용할 것입니다 ( 예 : 젠투 박스 /etc/php/cli/php.ini/etc/php/cgi/php.ini비교) /etc/php/apache/php.ini. 와 함께 사용되는 ini 파일을 찾으십시오 php -i | grep ini.


답변

명령 행에서 :

php -i | grep sourceguardian

그것이 있다면, 당신은 약간의 텍스트를 얻을 것입니다. 그렇지 않으면 아무것도 얻지 못할 것입니다.


답변

당신이 사용할 수있는 :

 echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php

짧은 태그 ” <? = “도 도움이 될 수 있습니다.

 echo '<?= function_exists("foo") ? "yes" : "no";' | php
 echo '<?= 8+7+9 ;' | php

닫는 태그 “?>”는 선택 사항이지만 마지막 “;”을 잊지 마십시오. !


답변

명령 행에서 PHP 사용

사용 대신에 -r과 CLI 버전을 사용하는 경우 창에를

php -r "echo 1"

-맞다

php -r 'echo 1'

-부정확

  PHP Parse error:  syntax error, unexpected ''echo' (T_ENCAPSED_AND_WHITESPACE), expecting end of file in Command line code on line 1


답변