ฉันต้องการรันคำสั่ง php เดียวเช่นif(function_exists("my_func")) echo 'function exists';
โดยตรงกับบรรทัดคำสั่งโดยไม่ต้องใช้ไฟล์ php แยกกัน
มันเป็นไปได้ยังไงกัน ?
ฉันต้องการรันคำสั่ง php เดียวเช่นif(function_exists("my_func")) echo 'function exists';
โดยตรงกับบรรทัดคำสั่งโดยไม่ต้องใช้ไฟล์ php แยกกัน
มันเป็นไปได้ยังไงกัน ?
คำตอบ:
หากคุณกำลังจะทำ PHP ในบรรทัดคำสั่งฉันขอแนะนำให้คุณติดตั้งphpsh เปลือก มันสนุกมากขึ้น
อย่างไรก็ตามคำสั่ง php เสนอสองสวิตช์เพื่อเรียกใช้โค้ดจากบรรทัดคำสั่ง :
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
คุณสามารถใช้สวิตช์ -rของ php ดังนี้:
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 ทำโดย Facebook จะได้รับแท็บเสร็จประวัติศาสตร์และอื่น ๆแล้วใช้ -a เช่น :
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
ถ้ามันไม่ได้ทำงานในกล่องของคุณเช่นเดียวกับกล่องของฉัน * ES * ( ทดสอบบน Ubuntu และประตูชัย) แล้วอาจจะตั้งค่าของ PHP เลือนหรือหัก หากคุณรันคำสั่งนี้:
php -i | grep 'API'
คุณควรเห็น:
Server API => Command Line Interface
หากคุณไม่ได้หมายถึงว่าบางทีคำสั่งอื่นจะให้ SAPI ลอง php-cli อาจเป็นแพ็คเกจหรือคำสั่งที่มีอยู่ในระบบปฏิบัติการของคุณ
หากคุณเห็นว่าคำสั่ง php ของคุณใช้ CLI (อินเตอร์เฟสบรรทัดคำสั่ง) SAPI (เซิร์ฟเวอร์ API) จากนั้นเรียกใช้php -h | grep code
เพื่อค้นหาสวิตช์บ้าที่ซึ่งไม่ได้เปลี่ยนเป็นปี -อนุญาตให้เรียกใช้รหัสในเวอร์ชัน / การตั้งค่าของคุณ
อีกสองตัวอย่างเพื่อให้แน่ใจว่ามันทำงานบนกล่องของฉัน:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
นอกจากนี้โปรดทราบว่าอาจเป็นไปได้ว่ามีการโหลดส่วนขยายใน CLI และไม่ได้อยู่ใน CGI หรือ Apache SAPI เป็นไปได้ว่า PHP SAPIs หลายแห่งใช้ไฟล์ php.ini ที่แตกต่างกันเช่น/etc/php/cli/php.ini
vs /etc/php/cgi/php.ini
vs /etc/php/apache/php.ini
ในกล่อง Gentoo หาที่ไฟล์ INI php -i | grep ini
จะใช้กับ
บนบรรทัดคำสั่ง:
php -i | grep sourceguardian
ถ้ามีคุณก็จะได้รับข้อความ ถ้าไม่คุณจะไม่ได้อะไรเลย
.php
ไฟล์ "?
คุณสามารถใช้ได้ :
echo '<?php if(function_exists("my_func")) echo "function exists"; ' | php
แท็กสั้น " <? = " ก็มีประโยชน์เช่นกัน:
echo '<?= function_exists("foo") ? "yes" : "no";' | php
echo '<?= 8+7+9 ;' | php
แท็กปิด Tha "?>" เป็นตัวเลือก แต่อย่าลืมขั้นสุดท้าย ";" !
php -r
คุณไม่ต้องกังวลกับการเปิดแท็ก PHP
ใช้"แทนที่จะเป็น"บน windows เมื่อใช้ cli เวอร์ชันกับ -r
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