Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

วิธีดำเนินการ PHP จากบรรทัดคำสั่ง (Bash/Shell)

บทความนี้จะอธิบายวิธีการใช้งาน PHP จาก Bash shell/บรรทัดคำสั่งอย่างรวดเร็ว พร้อมตัวอย่าง

โดยปกติแล้ว PHP จะใช้สำหรับสร้างเนื้อหาเพื่อให้บริการบนเว็บ แต่ก็สามารถใช้จากบรรทัดคำสั่งได้เช่นกัน

โดยปกติแล้วจะทำเพื่อวัตถุประสงค์ในการทดสอบหรือค้นหาข้อมูลเกี่ยวกับสภาพแวดล้อม PHP แต่ PHP ยังสามารถใช้สำหรับการเขียนสคริปต์บรรทัดคำสั่ง (ซึ่งไม่ได้ทำบ่อยนักจริงๆ อาจเป็นเพราะมีดีกว่า ทางเลือกอื่น )

ดำเนินการคำสั่ง PHP โดยตรงจากเชลล์

คำสั่ง PHP สามารถดำเนินการได้โดยตรงจากบรรทัดคำสั่งด้วย -r (เรียกใช้) ตัวเลือก:

php -r 'phpinfo();'

ด้านบน phpinfo() เรียกว่าฟังก์ชัน สามารถส่งโค้ดหลายบรรทัดโดยคั่นด้วยเครื่องหมายอัฒภาค หรือส่งไพพ์ heredoc (ตัวแปร multiline Bash) ได้

พารามิเตอร์/อาร์กิวเมนต์

พารามิเตอร์/อาร์กิวเมนต์สามารถส่งผ่านไปยัง PHP ได้โดยใช้ $argv ตัวแปร ซึ่งสามารถใช้ได้เมื่อดำเนินการ PHP จากบรรทัดคำสั่ง

php -r 'echo $argv[1]; echo $argv[2];' "foo" "bar"

ด้านบน พารามิเตอร์แรกเข้าถึงได้โดยใช้ $argv[1] และพารามิเตอร์ที่สองโดยใช้ $argv[2] .

$argv เป็นอาร์เรย์ที่จะสามารถเข้าถึงได้เฉพาะเมื่อมีการเรียก PHP จากบรรทัดคำสั่ง รายการแรกในอาร์เรย์จะเป็นชื่อของโปรแกรมเรียกทำงาน PHP ที่เรียกใช้เพื่อเรียกใช้สคริปต์ และรายการต่อไปนี้ในอาร์เรย์จะเป็นพารามิเตอร์ที่ส่งผ่านตามลำดับลักษณะที่ปรากฏ

เรียกใช้ไฟล์สคริปต์

ไฟล์ PHP สามารถดำเนินการได้จากบรรทัดคำสั่งโดยระบุพาธไปยังไฟล์:

php script.php

หรือ

php -f script.php

ที่ -f ไม่จำเป็นแต่สามารถระบุได้เพื่อความชัดเจน

รายการตัวเลือกบรรทัดคำสั่ง PHP ทั้งหมดสามารถพบได้ที่นี่

พารามิเตอร์/อาร์กิวเมนต์

เมื่อเรียกใช้ PHP โดยตรงจากบรรทัดคำสั่ง พารามิเตอร์สามารถเข้าถึงได้โดยใช้ $argv array เมื่อเรียกใช้สคริปต์จากบรรทัดคำสั่งในลักษณะเดียวกัน

ตรวจสอบว่าเรียกใช้จากบรรทัดคำสั่งหรือไม่

ชอบ $argv$argc จะปรากฏเมื่อเรียกใช้จากบรรทัดคำสั่งเท่านั้น ประกอบด้วยจำนวนของพารามิเตอร์/อาร์กิวเมนต์ที่ส่งผ่านไปยังสคริปต์

หากมี แสดงว่าคุณกำลังเรียกใช้บนบรรทัดคำสั่ง!

if (isset($argc)) {
    // PHP was called from the command line 
}

STDIN/STDOUT และ PHP

สามารถใช้การเปลี่ยนเส้นทางมาตรฐานเพื่อป้อนคำสั่งและประมวลผลข้อมูลจาก PHP ได้เช่นเดียวกับที่คุณทำกับแอปพลิเคชันบรรทัดคำสั่งอื่นๆ

echo 'Green trees' | php -r 'echo file_get_contents("php://stdin");'

ด้านบน ข้อความ "ต้นไม้สีเขียว" ถูกส่งไปยัง PHP ซึ่งจะอ่านไฟล์ของ STDIN และทำซ้ำอีกครั้ง