Saya ingin mengeksekusi pernyataan php tunggal seperti if(function_exists("my_func")) echo 'function exists';langsung dengan baris perintah tanpa harus menggunakan file php terpisah.
Bagaimana itu mungkin ?
Saya ingin mengeksekusi pernyataan php tunggal seperti if(function_exists("my_func")) echo 'function exists';langsung dengan baris perintah tanpa harus menggunakan file php terpisah.
Bagaimana itu mungkin ?
Jawaban:
Jika Anda akan melakukan PHP di baris perintah, saya sarankan Anda menginstal phpsh, shell PHP yang layak . Jauh lebih menyenangkan.
Lagi pula, perintah php menawarkan dua switch untuk mengeksekusi kode dari baris perintah :
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
Anda dapat menggunakan sakelar -r php seperti itu:
php -r 'echo function_exists("foo") ? "yes" : "no";'
Perintah PHP di atas harus menampilkan no dan mengembalikan 0 seperti yang Anda lihat:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
Switch lucu lainnya adalah php -a :
-a Run as interactive shell
Ini agak lumpuh dibandingkan dengan phpsh , tetapi jika Anda tidak ingin menginstal shell interaktif mengagumkan untuk php yang dibuat oleh facebook untuk mendapatkan penyelesaian tab, riwayat, dan sebagainya , maka gunakan -a seperti itu :
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
Jika tidak berfungsi pada kotak Anda seperti pada kotak saya * es * ( diuji pada Ubuntu dan Arch), maka mungkin pengaturan PHP Anda tidak jelas atau rusak . Jika Anda menjalankan perintah ini:
php -i | grep 'API'
Anda harus melihat:
Server API => Command Line Interface
Jika tidak , ini berarti bahwa mungkin perintah lain akan menyediakan CLI SAPI . Coba php-cli, mungkin itu paket atau perintah yang tersedia di OS Anda.
Jika Anda melihat bahwa perintah php Anda menggunakan CLI (Command Line Interface) SAPI (Server API), maka jalankan php -h | grep codeuntuk mencari tahu saklar gila mana - karena ini belum berubah untuk tahun - memungkinkan untuk menjalankan kode di versi / pengaturan Anda.
Beberapa contoh lain, hanya untuk memastikan itu berfungsi pada kotak saya:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
Juga, perhatikan bahwa ada kemungkinan bahwa ekstensi dimuat di CLI dan bukan di SAPI CGI atau Apache. Kemungkinan beberapa SAPI PHP menggunakan file php.ini yang berbeda , misalnya /etc/php/cli/php.inivs /etc/php/cgi/php.inivs /etc/php/apache/php.inipada kotak Gentoo. Cari tahu di mana file ini digunakan php -i | grep ini.
Di baris perintah:
php -i | grep sourceguardian
Jika ada di sana, maka Anda akan mendapatkan beberapa teks. Jika tidak, Anda tidak akan mendapatkan apa pun.
.phpfile? "?
Kamu bisa memakai :
echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php
Tag pendek " <? = " Juga dapat bermanfaat:
echo '<?= function_exists("foo") ? "yes" : "no";' | php
echo '<?= 8+7+9 ;' | php
Tag penutup "?>" Adalah opsional, tetapi jangan lupa final ";" !
php -rAnda tidak perlu khawatir tentang membuka tag PHP.
Menggunakan PHP dari baris perintah
gunakan " bukannya ' pada windows saat menggunakan versi cli dengan -r
php -r "echo 1"
-- benar
php -r 'echo 1'
- salah
PHP Parse error: syntax error, unexpected ''echo' (T_ENCAPSED_AND_WHITESPACE), expecting end of file in Command line code on line 1