if(function_exists("my_func")) echo 'function exists';
Ayrı bir php dosyası kullanmak zorunda kalmadan doğrudan komut satırı gibi tek bir php deyimi yürütmek istiyorum .
Bu nasıl mümkün olaiblir ?
if(function_exists("my_func")) echo 'function exists';
Ayrı bir php dosyası kullanmak zorunda kalmadan doğrudan komut satırı gibi tek bir php deyimi yürütmek istiyorum .
Bu nasıl mümkün olaiblir ?
Yanıtlar:
Komut satırında PHP yapacaksanız, phpsh, iyi bir PHP kabuğu yüklemenizi öneririm . Çok daha eğlenceli.
Her neyse, php komutu kodu komut satırından yürütmek için iki anahtar sunar :
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
Php's -r anahtarını şu şekilde kullanabilirsiniz :
php -r 'echo function_exists("foo") ? "yes" : "no";'
Etmeliyiz ki PHP komutu üstündeki çıkış no
ve dönüşleri 0
gördüğünüz gibi:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
Başka bir komik anahtar php -a :
-a Run as interactive shell
Bu var sıralama oranla sakat phpsh ama yüklemek istemiyorsanız almak için facebook tarafından yapılan php için müthiş interaktif kabuk sekme tamamlama, tarih ve benzeri , daha sonra örneğin -a kullanın :
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
Kutumda * es * ( Ubuntu ve Arch üzerinde test edilmiş) gibi çalışmıyorsa , muhtemelen PHP kurulumunuz bulanık veya bozuktur . Bu komutu çalıştırırsanız:
php -i | grep 'API'
Sen olmalıdır bkz:
Server API => Command Line Interface
Bunu yapmazsanız , bu belki başka bir komutun CLI SAPI'yi sağlayacağı anlamına gelir . Php-cli'yu deneyin, belki de işletim sisteminizde bulunan bir paket veya komuttur.
Eğer yoksa php komut CLI (Komut Satırı Arayüzü) SAPI (Sunucu API) kullanır görüyoruz, daha sonra çalıştırmak php -h | grep code
için hangi çılgın anahtarını bulmak - yıl- için bu değişmedi olarak sürümü / kurulumunda kod çalıştırmasına olanak tanır.
Kutularımda çalıştığından emin olmak için birkaç örnek daha:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
Ayrıca, bir uzantının CGI veya Apache SAPI'ye değil CLI'ye yüklenebileceğini unutmayın. Birkaç PHP SAPI'nin farklı php.ini dosyaları kullanması muhtemeldir , örn. /etc/php/cli/php.ini
Vs /etc/php/cgi/php.ini
vs /etc/php/apache/php.ini
bir Gentoo kutusunda. Hangi ini dosyasının kullanıldığını öğrenin php -i | grep ini
.
Komut satırında:
php -i | grep sourceguardian
Eğer oradaysa, o zaman biraz metin alırsınız. Değilse, hiçbir şey alamazsınız.
.php
dosyaya kaydetmeden doğrudan komut satırından PHP kodunu nasıl çalıştırırım ? "
Kullanabilirsiniz :
echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php
" <? = " Kısa etiketi de yardımcı olabilir:
echo '<?= function_exists("foo") ? "yes" : "no";' | php
echo '<?= 8+7+9 ;' | php
Kapanış etiketi "?>" İsteğe bağlıdır, ancak son ";" !
php -r
PHP etiketlerini açma konusunda endişelenmenize gerek yoktur.
kullanmak " yerine ' -r ile cli sürümünü kullanırken pencerelerde
php -r "echo 1"
- doğru
php -r 'echo 1'
- yanlış
PHP Parse error: syntax error, unexpected ''echo' (T_ENCAPSED_AND_WHITESPACE), expecting end of file in Command line code on line 1