Bagaimana cara mengeksekusi kode PHP dari baris perintah?
163
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.
melakukan function_exists () tanpa menggunakan file lain yang mengandung fungsi yang ditentukan pengguna tidak akan banyak baik, kecuali untuk menguji versi PHP, yang dapat Anda temukan dengan cara lain. Fungsi apa yang ingin Anda uji?
Matt Gibson
Saya mencari pengujian fungsi ini: sg_load ()
Steve
2
Kedengarannya seperti apa yang sebenarnya Anda inginkan adalah mencari tahu apakah ekstensi php sourceguardian diaktifkan?
Matt Gibson
2
maka phpinfo () harus memberi tahu Anda.
jpic
Jawaban:
256
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:
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 =>CommandLineInterface
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:
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.
Entah saya buta atau jawaban ini tidak ada hubungannya dengan pertanyaan. Bagaimana jawaban ini seharusnya menjawab pertanyaan yang menanyakan " Bagaimana menjalankan kode PHP langsung dari baris perintah, tanpa menyimpan kode PHP ke dalam .phpfile? "?
trejder
15
@trejder Sejenak di sana saya bertanya-tanya apakah saya telah menjawab pertanyaan yang salah, tetapi kemudian saya melihat riwayat sunting dan komentar. Ini menjawab apa yang tampaknya dibutuhkan OP: mencari tahu apakah ekstensi PHP tertentu dimuat. Sejak itu pertanyaannya telah diulangi, jadi tidak cocok sekarang.
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 :
Anda dapat menggunakan sakelar -r php seperti itu:
Perintah PHP di atas harus menampilkan
no
dan mengembalikan0
seperti yang Anda lihat:Switch lucu lainnya adalah php -a :
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 :
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:
Anda harus melihat:
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 code
untuk 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:
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.ini
vs/etc/php/cgi/php.ini
vs/etc/php/apache/php.ini
pada kotak Gentoo. Cari tahu di mana file ini digunakanphp -i | grep ini
.sumber
Di baris perintah:
Jika ada di sana, maka Anda akan mendapatkan beberapa teks. Jika tidak, Anda tidak akan mendapatkan apa pun.
sumber
.php
file? "?Kamu bisa memakai :
Tag pendek " <? = " Juga dapat bermanfaat:
Tag penutup "?>" Adalah opsional, tetapi jangan lupa final ";" !
sumber
php -r
Anda tidak perlu khawatir tentang membuka tag PHP.Menggunakan PHP dari baris perintah
gunakan " bukannya ' pada windows saat menggunakan versi cli dengan -r
-- benar
- salah
sumber