Posting ini membahas cara mengeksekusi perintah shell melalui PHP. Kemampuan untuk mengeksekusi perintah shell adalah fitur yang kuat dan harus digunakan dengan hati-hati. Dengan demikian, tidak semua penyedia hosting mengizinkan Anda menjalankan perintah shell Show
Tahukah Anda bahwa Anda dapat menonaktifkan fungsi PHP di file php.ini?. ini menggunakan direktif? . "Kesalahan fatal. Kesalahan yang tidak tertangkap. Panggil ke fungsi yang tidak terdefinisi Shell_exec()” Fungsi PHP untuk mengeksekusi perintah shell adalah. shell_exec(), exec() atau sistem(). Fungsi-fungsi ini sangat mirip tetapi memiliki sedikit perbedaan. Mari lihat Daftar isi shell_exec(). rangkaianFungsi shell_exec() mengembalikan string atau nilai NULL. String yang dikembalikan akan berisi output dari perintah yang Anda jalankan. Namun, fungsi shell_exec() akan mengembalikan NULL jika terjadi kesalahan. Anda juga dapat mengharapkan nilai NULL jika perintah tidak menghasilkan keluaran Perintah ini membutuhkan parameter berikut
Ini akan menampilkan yang berikut ini _exec(string $cmd, array &$output = null, int &$resultCode = null). rangkaian. SalahFungsi exec() mengembalikan baris terakhir dari perintah yang dieksekusi sebagai string. Namun, perintah ini juga dapat mengembalikan FALSE jika terjadi kesalahan Perintah ini membutuhkan parameter berikut
Simbol & berarti bahwa nilai variabel akan diperbarui ketika berubah di dalam fungsi. Dengan kata lain, variabel dilewatkan dengan referensi Selanjutnya, mari kita lihat bagaimana Anda dapat menggunakan fungsi exec() untuk mengembalikan informasi memori dari mesin Linux
Ini akan menampilkan yang berikut ini
sistem(string $cmd, int &$resultCode = null). rangkaian. SalahFungsi system() mirip dengan fungsi exec(). Namun itu akan menampilkan output secara langsung (tanpa menggunakan echo() atau print()) Perintah ini membutuhkan parameter berikut
Terakhir, mari kita lihat bagaimana perintah sistem digunakan menggunakan contoh exec() dari atas _Ini akan menampilkan yang berikut ini
MembungkusSangat mudah untuk mengeksekusi perintah shell di PHP. Selain itu, fungsi shell_exec(), exec() atau system() tidak boleh dinonaktifkan di php. file ini Anda mungkin juga tertarik
Sumber
Tentang Penulis Tim redaksi Anto sangat menyukai cloud seperti Anda. Setiap anggota tim redaksi Anto adalah pakar Cloud di bidangnya masing-masing. Anto Online sangat bangga membantu sesama penggemar Cloud. Beri tahu kami jika Anda memiliki ide bagus untuk topik berikutnya. Hubungi Anto Online jika ingin berkontribusi Apakah aman menggunakan exec di PHP?Fungsi exec seaman yang Anda buat . Selama Anda menggunakan fungsi pelolosan yang tepat seperti yang ditunjukkan di sini, Anda akan baik-baik saja. Meskipun memungkinkan untuk membuat perintah skrip aman, vektor serangan yang umum adalah mengunggah skrip berbahaya dan menggunakan exec dan fungsi serupa untuk meretas server.
Apa perbedaan antara sistem () dan exec di PHP?exec() adalah untuk memanggil perintah sistem, dan mungkin menangani sendiri hasilnya. system() adalah untuk mengeksekusi perintah sistem dan segera menampilkan output - mungkin teks . passthru() adalah untuk mengeksekusi perintah sistem yang Anda inginkan dari pengembalian mentah - mungkin sesuatu yang biner.
Apa perbedaan antara shell dan exec di PHP?Shell_exec mengembalikan semua aliran keluaran sebagai string. exec mengembalikan baris terakhir dari output secara default, tetapi dapat memberikan semua output sebagai array yang ditentukan sebagai parameter kedua . Jika Anda memerlukan nilai keluar DAN semua keluaran, Anda mungkin masih lebih baik menggunakan "exec" daripada "Shell_exec".
Apa output dari perintah exec di PHP?Fungsi exec() menjalankan program eksternal, ditentukan dalam parameter pertama. Itu mengirim kembali baris terakhir yang dikeluarkan dari program itu sebagai nilai kembaliannya , tidak seperti passthru() , yang mencetak semua keluaran yang dihasilkan program. |