Mulai dari versi 4. 3. 0, PHP mendukung jenis SAPI baru (Antarmuka Pemrograman Aplikasi Server) bernama CLI yang berarti Antarmuka Baris Perintah. Sesuai dengan namanya, fokus utama tipe SAPI ini adalah mengembangkan aplikasi shell (atau desktop juga) dengan PHP. Ada beberapa perbedaan antara CLI SAPI dan SAPI lainnya yang dijelaskan pada bab ini. Perlu disebutkan bahwa CLI dan CGI adalah SAPI yang berbeda meskipun mereka memiliki banyak perilaku yang sama Show CLI SAPI dirilis untuk pertama kalinya dengan PHP 4. 2. 0, tetapi masih eksperimental dan harus diaktifkan secara eksplisit dengan --enable-cli saat dijalankan. / konfigurasi. Sejak PHP4. 3. 0 CLI SAPI tidak lagi eksperimental dan opsi --enable-cli aktif secara default. Anda dapat menggunakan --disable-cli untuk menonaktifkannya Mulai dari PHP4. 3. 0, nama, lokasi dan keberadaan binari CLI/CGI akan berbeda tergantung bagaimana PHP diinstal pada sistem Anda. Secara default saat menjalankan make, CGI dan CLI dibuat dan ditempatkan masing-masing sebagai sapi/cgi/php dan sapi/cli/php, di direktori sumber PHP Anda. Anda akan mencatat bahwa keduanya bernama php. Apa yang terjadi selama make install tergantung pada garis konfigurasi Anda. Jika modul SAPI dipilih selama konfigurasi, seperti apxs, atau opsi --disable-cgi digunakan, CLI disalin ke {PREFIX}/bin/php selama make install jika tidak, CGI ditempatkan di sana. Jadi, misalnya, jika --with--apxs ada di baris configure Anda, maka CLI akan disalin ke {PREFIX}/bin/php selama make install. Jika Anda ingin mengganti instalasi biner CGI, gunakan make install-cli setelah make install. Atau Anda dapat menentukan --disable-cgi di baris konfigurasi Anda
Paket windows antara PHP 4. 2. 0 dan PHP4. 2. 3 mendistribusikan CLI sebagai php-cli. exe, tinggal di folder yang sama dengan php CGI. exe. Dimulai dengan PHP4. 3. 0 paket windows mendistribusikan CLI sebagai php. exe di folder terpisah bernama cli, jadi cli/php. exe. Dimulai dengan PHP 5, CLI didistribusikan di folder utama bernama php. exe. Versi CGI didistribusikan sebagai php-cgi. exe Pada PHP 5, php-win baru. exe didistribusikan. Ini sama dengan versi CLI, kecuali bahwa php-win tidak menampilkan apa pun dan karenanya tidak menyediakan konsol (tidak ada "kotak dos" yang muncul di layar). Perilaku ini mirip dengan php-gtk. Anda harus mengonfigurasi dengan --enable-cli-win32
Perbedaan yang luar biasa dari CLI SAPI dibandingkan dengan SAPI lainnya
Daftar opsi baris perintah yang disediakan oleh biner PHP dapat dilihat kapan saja dengan menjalankan PHP dengan tombol -h Usage: php [options] [-f] [args...]
php [options] -r CLI SAPI memiliki tiga cara berbeda untuk mendapatkan kode PHP yang ingin Anda jalankan
Seperti setiap aplikasi shell, biner PHP menerima sejumlah argumen tetapi skrip PHP Anda juga dapat menerima argumen. Jumlah argumen yang dapat diteruskan ke skrip Anda tidak dibatasi oleh PHP (shell memiliki batas ukuran tertentu dalam jumlah karakter yang dapat diteruskan; biasanya Anda tidak akan mencapai batas ini). Argumen yang diteruskan ke skrip Anda tersedia di array global $argv. Indeks nol selalu berisi nama skrip (yaitu - jika kode PHP berasal dari input standar atau dari saklar baris perintah -r). Variabel global terdaftar kedua adalah $argc yang berisi jumlah elemen dalam array $argv (bukan jumlah argumen yang diteruskan ke skrip) Selama argumen yang ingin Anda sampaikan ke skrip Anda tidak dimulai dengan - karakter, tidak ada hal khusus yang harus diperhatikan. Meneruskan argumen ke skrip Anda yang dimulai dengan - akan menimbulkan masalah karena PHP sendiri menganggap harus menanganinya. Untuk mencegah hal ini, gunakan pemisah daftar argumen --. Setelah pemisah ini diuraikan oleh PHP, setiap argumen yang mengikutinya diteruskan tanpa disentuh ke skrip Anda # This will not execute the given code but will show the PHP usage $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] [args...] [...] # This will pass the '-h' argument to your script and prevent PHP from showing it's usage $ php -r 'var_dump($argv);' -- -h array(2) { [0]=> string(1) "-" [1]=> string(2) "-h" } Namun, ada cara lain menggunakan PHP untuk skrip shell. Anda dapat menulis skrip di mana baris pertama dimulai dengan #. /usr/bin/php. Setelah ini, Anda dapat menempatkan kode PHP normal yang disertakan dalam tag awal dan akhir PHP. Setelah Anda mengatur atribut eksekusi file dengan tepat (mis. g. chmod +x test) skrip Anda dapat dijalankan seperti skrip shell atau perl biasa $ pwd /tmp $ php -f another_directory/test.php /tmp6Dengan asumsi file ini bernama test di direktori saat ini, sekarang kita dapat melakukan hal berikut. $ chmod +x test $ ./test -h -- foo array(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" }Seperti yang Anda lihat, dalam hal ini tidak perlu berhati-hati saat meneruskan parameter yang dimulai dengan - ke skrip Anda Opsi panjang tersedia sejak PHP 4. 3. 3 Tabel 43-3. Opsi baris perintah OptionLong OptionDescription-s--syntax-highlightSintaks warna tampilan sumber yang disorot Opsi ini menggunakan mekanisme internal untuk mengurai file dan menghasilkan versi HTML yang disorot dan menulisnya ke output standar. Perhatikan bahwa semua itu dilakukan untuk menghasilkan blok $ pwd /tmp $ php -f another_directory/test.php /tmp7 tag HTML, tanpa header HTML
Alias dari --syntax-highlight -w--stripTampilkan sumber dengan komentar dan spasi kosong -f--file Mem-parsing dan mengeksekusi nama file yang diberikan ke opsi -f. Sakelar ini bersifat opsional dan dapat ditinggalkan. Hanya memberikan nama file untuk dieksekusi sudah cukup -v--versiMenulis versi PHP, PHP SAPI, dan Zend ke keluaran standar, mis. g $ php -v PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies_-c--php-ini Dengan opsi ini seseorang dapat menentukan direktori tempat mencari php. ini atau Anda dapat menentukan file INI khusus secara langsung (yang tidak perlu diberi nama php. ini), e. g $ pwd /tmp $ php -q another_directory/test.php /tmp/another_directory0Jika Anda tidak menentukan opsi ini, file akan dicari. -n--no-php-ini Abaikan php. ini sama sekali. Switch ini tersedia sejak PHP 4. 3. 0 -d--definisikanOpsi ini memungkinkan Anda untuk menetapkan nilai khusus untuk salah satu arahan konfigurasi yang diizinkan di php. ini. Sintaksnya adalah $ pwd /tmp $ php -q another_directory/test.php /tmp/another_directory_1 Contoh (garis dibungkus untuk alasan tata letak) $ pwd /tmp $ php -q another_directory/test.php /tmp/another_directory2-a--interaktif Menjalankan PHP secara interaktif -e--profil-infoHasilkan informasi tambahan untuk debugger/profiler -z--zend-ekstensiMuat ekstensi Zend. Jika hanya nama file yang diberikan, PHP mencoba memuat ekstensi ini dari jalur pustaka default saat ini di sistem Anda (biasanya ditentukan /etc/ld. jadi. conf pada sistem Linux). Melewati nama file dengan informasi jalur absolut tidak akan menggunakan jalur pencarian perpustakaan sistem. Nama file relatif dengan informasi direktori akan memberi tahu PHP hanya untuk mencoba memuat ekstensi relatif ke direktori saat ini -l--sintaksis-periksaOpsi ini menyediakan cara mudah untuk hanya melakukan pemeriksaan sintaks pada kode PHP yang diberikan. Jika berhasil, teks Tidak ada kesalahan sintaks yang terdeteksi ini ditulis ke output standar dan kode pengembalian shell adalah 0. Jika gagal, teks Errors parsingin selain pesan kesalahan parser internal ditulis ke output standar dan kode pengembalian shell diatur ke 255 Opsi ini tidak akan menemukan kesalahan fatal (seperti fungsi yang tidak terdefinisi). Gunakan -f jika Anda juga ingin menguji kesalahan fatal -m--modul Dengan menggunakan opsi ini, PHP mencetak modul PHP dan Zend bawaan (dan dimuat). $ pwd /tmp $ php -q another_directory/test.php /tmp/another_directory3-i--infoOpsi baris perintah ini memanggil phpinfo(), dan mencetak hasilnya. Jika PHP tidak berfungsi dengan benar, disarankan untuk menggunakan php -i dan lihat apakah ada pesan kesalahan yang dicetak sebelum atau menggantikan tabel informasi. Berhati-hatilah saat menggunakan mode CGI hasilnya dalam HTML dan karenanya cukup besar. -r--lari Opsi ini memungkinkan eksekusi PHP langsung dari dalam baris perintah. Tag awal dan akhir PHP ( dan ?>) tidak diperlukan dan akan menyebabkan kesalahan parser jika ada
-h--helpDengan opsi ini, Anda dapat memperoleh informasi tentang daftar sebenarnya dari opsi baris perintah dan beberapa deskripsi satu baris tentang apa yang mereka lakukan. -?--usageAlias dari --help Eksekusi PHP dapat digunakan untuk menjalankan skrip PHP yang benar-benar independen dari server web. Jika Anda menggunakan sistem Unix, Anda harus menambahkan baris pertama khusus ke skrip PHP Anda, dan membuatnya dapat dieksekusi, sehingga sistem akan mengetahui, program apa yang harus menjalankan skrip tersebut. Pada platform Windows Anda dapat mengaitkan php. exe dengan opsi klik dua kali dari. php, atau Anda dapat membuat file batch untuk menjalankan skrip melalui PHP. Baris pertama yang ditambahkan ke skrip untuk bekerja di Unix tidak akan merugikan di Windows, jadi Anda dapat menulis program lintas platform dengan cara ini. Contoh sederhana penulisan program baris perintah PHP dapat ditemukan di bawah ini Contoh 43-1. Script dimaksudkan untuk dijalankan dari baris perintah (script. php) $ pwd /tmp $ php -f another_directory/test.php /tmp_8 $ pwd /tmp $ php -f another_directory/test.php /tmp_9 Pada skrip di atas, kami menggunakan baris khusus pertama untuk menunjukkan bahwa file ini harus dijalankan oleh PHP. Kami bekerja dengan versi CLI di sini, jadi tidak akan ada cetakan tajuk HTTP. Ada dua variabel yang dapat Anda gunakan saat menulis aplikasi baris perintah dengan PHP. $argc dan $argv. Yang pertama adalah jumlah argumen ditambah satu (nama skrip yang berjalan). Yang kedua adalah larik yang berisi argumen, dimulai dengan nama skrip sebagai angka nol ($argv[0]) Dalam program di atas kami memeriksa apakah ada kurang atau lebih dari satu argumen. Juga jika argumennya adalah --help, -help, -h atau -?, kami mencetak pesan bantuan, mencetak nama skrip secara dinamis. Jika kami menerima argumen lain, kami mengulanginya Jika Anda ingin menjalankan skrip di atas di Unix, Anda harus membuatnya dapat dieksekusi, dan cukup menyebutnya sebagai skrip. php echothis atau skrip. php -h. Di Windows, Anda dapat membuat file batch untuk tugas ini Contoh 43-2. File batch untuk menjalankan skrip PHP baris perintah (script. kelelawar) $ pwd /tmp $ php -q another_directory/test.php /tmp/another_directory_7 Dengan asumsi Anda menamai skrip program di atas. php, dan Anda memiliki CLI php. exe di c. \php\cli\php. exe file batch ini akan menjalankannya untuk Anda dengan opsi tambahan Anda. naskah. bat echothis atau skrip. mandi Lihat juga dokumentasi ekstensi Readline untuk lebih banyak fungsi yang dapat Anda gunakan untuk meningkatkan aplikasi baris perintah Anda di PHP Bagaimana saya bisa mengakses sesi di PHP?Bagaimana Mengakses Nilai Dari Sesi di PHP? . Dalam contoh yang disebutkan di bawah ini, Anda akan membuat sesi lain dengan variabel yang menyimpan nama Anda. session_start();by using the global variable $_SESSION. In the example stated below, you will create another session with a variable that stores your name. session_start();
Apa gunanya PHP CLI?Antarmuka Baris Perintah (CLI) PHP memungkinkan Anda menjalankan skrip PHP saat masuk ke server melalui SSH . ServerPilot menginstal beberapa versi PHP di server Anda sehingga ada beberapa executable PHP yang tersedia untuk dijalankan. Anda juga dapat mengonfigurasi versi PHP yang digunakan saat Anda hanya memanggil perintah php.
Bisakah Anda menjalankan PHP dari baris perintah?Anda tinggal mengikuti langkah-langkah untuk menjalankan program PHP menggunakan baris perintah . Buka terminal atau jendela baris perintah. Pergi ke folder atau direktori yang ditentukan di mana file php ada.
Bagaimana PHP menangani sesi?PHP merespons dengan mengirimkan token unik yang mengidentifikasi sesi saat ini . Ini dikenal sebagai ID sesi. Dalam semua permintaan berikutnya, browser mengirimkan ID sesi untuk mengatakan, "Hai, ini saya lagi. " Semua data lain yang terkait dengan sesi disimpan di server web. Hanya ID sesi yang diteruskan bolak-balik. |