Php exec mengembalikan nilai 2

Meskipun PHP menjadi bahasa yang kuat dengan banyak ekstensi yang tersedia untuk menangani perpustakaan spesialis, Anda mungkin akan merasa terbantu untuk dapat menjalankan program eksternal bila diperlukan, terutama jika Anda menjalankan Unix di mana OS hadir dengan lebih banyak program bawaan.

Di PHP ada dua metode penting untuk mengeksekusi program, dan ini adalah exec() dan passthru(). Keduanya mengambil minimal satu parameter, yang merupakan nama program yang ingin Anda jalankan, tetapi perbedaan di antara keduanya adalah bahwa exec() menjalankan program kemudian mengirimkan kembali baris terakhir yang dikeluarkan dari program itu sebagai nilai pengembaliannya. Fungsi passthru(), sebaliknya, menjalankan program yang ditentukan dan mencetak semua keluaran yang dihasilkan program. Memanggil exec() biasanya lebih disukai ketika output dari program Anda tidak relevan, sedangkan passthru() secara otomatis mencetak output Anda. Di sini keduanya sedang beraksi


Kedua perintah tersebut tersedia di kotak Unix standar. Perhatikan bahwa karena waktu aktif biasanya mengembalikan hanya satu baris, tidak masalah apakah print exec() atau passthru() digunakan

Jika Anda melewatkan parameter kedua dan ketiga ke exec(), output dari perintah akan dimasukkan ke dalam parameter dua sebagai larik dengan satu baris per elemen, dan nilai kembalian dari perintah akan dimasukkan ke dalam parameter tiga. Demikian pula, jika Anda melewatkan parameter kedua ke passthru() itu akan diisi dengan nilai kembalian dari perintah

Sebagai contoh


Contoh itu seharusnya berfungsi dengan baik di Windows serta banyak versi Unix

Catatan Penulis. Jika server Anda adalah kotak Unix, coba gunakan passthru("fortune") untuk mendapatkan sistem kutipan acak yang cepat dan mudah untuk bagian bawah halaman Anda. Perhatikan bahwa keberuntungan mungkin tidak diinstal atau tersedia untuk skrip PHP Anda - hubungi administrator sistem Anda untuk mengetahuinya

Ada fungsi eksekusi lain yang tersedia, terutama shell_exec() dan system(), namun sebagian besar tidak relevan - shell_exec(), misalnya, bekerja dengan cara yang persis sama seperti operator backtick yang kita lihat sebelumnya

Catatan Penulis. Mengambil input pengguna dan meneruskannya ke salah satu fungsi eksekusi program ini berpotensi fatal - pengguna dapat dengan mudah melewati keamanan dan melakukan hal buruk dengan server Anda. Jika Anda benar-benar harus menggunakan data pengguna sebagai input untuk pemanggilan program Anda, teruskan melalui fungsi khusus escapeshellcmd() terlebih dahulu - ini mengambil input Anda, dan mengembalikannya dalam format aman yang dapat digunakan

Sejauh ini kita telah melihat mengeksekusi program eksternal menggunakan exec() dan system(), tetapi ada fungsi ketiga yang memungkinkan Anda untuk mengeksekusi secara eksternal juga, meskipun cara kerjanya sangat berbeda dari dua lainnya. Fungsi virtual() hanya membutuhkan satu parameter, dan, luar biasa, hanya berfungsi di server web Apache dan SunONE. Tidak seperti exec() dan system(), virtual() melakukan permintaan virtual ke server web untuk sebuah file, hampir seolah-olah skrip Anda adalah klien itu sendiri. Permintaan ini diproses seperti biasa dan hasilnya dikirim kembali ke skrip Anda

Dengan menggunakan metode ini Anda dapat, misalnya, menjalankan skrip Perl dari skrip PHP Anda, atau, untuk keanehan yang nyata, mengeksekusi skrip PHP lain dari skrip PHP Anda. Penggunaan untuk virtual() mungkin tidak tampak jelas pada awalnya, hanya karena jumlahnya sedikit dan jarang. Namun, jika Anda memiliki halaman di situs Anda yang memerlukan eksekusi khusus, Anda harus menggunakan exec(), meneruskan nama program yang menangani halaman serta nama file halaman itu sendiri, Anda dapat menggunakan include()

Ingin belajar PHP7?

Peretasan dengan PHP telah diperbarui sepenuhnya untuk PHP 7, dan sekarang tersedia sebagai PDF yang dapat diunduh. Dapatkan lebih dari 1200 halaman pembelajaran langsung PHP hari ini

Jika ini membantu, luangkan waktu sejenak untuk memberi tahu orang lain tentang Meretas dengan PHP dengan men-tweet tentangnya

Fungsi shell_exec() adalah fungsi bawaan di PHP yang digunakan untuk mengeksekusi perintah melalui shell dan mengembalikan hasil lengkap sebagai string. Shell_exec adalah alias untuk operator backtick, untuk yang digunakan untuk *nix. Jika perintah gagal, kembalikan NULL dan nilainya tidak dapat diandalkan untuk pemeriksaan kesalahan

Sintaksis

string shell_exec( $cmd )

Parameter. Fungsi ini menerima parameter tunggal $cmd yang digunakan untuk menyimpan perintah yang akan dieksekusi

Nilai Pengembalian. Fungsi ini mengembalikan perintah yang dieksekusi atau NULL jika terjadi kesalahan

Catatan. Fungsi ini dinonaktifkan saat PHP berjalan dalam mode aman

Contoh




<?php

 

// Use ls command to shell_exec

// function

$output = shell_exec(

gfg.php
index.html
geeks.php
0
gfg.php
index.html
geeks.php
1

 

gfg.php
index.html
geeks.php
_3

gfg.php
index.html
geeks.php
_4

gfg.php
index.html
geeks.php
5
gfg.php
index.html
geeks.php
6
gfg.php
index.html
geeks.php
7

gfg.php
index.html
geeks.php
8

Keluaran

gfg.php
index.html
geeks.php

exec() Fungsi

Fungsi exec() adalah fungsi bawaan di PHP yang digunakan untuk mengeksekusi program eksternal dan mengembalikan baris terakhir dari output. Itu juga mengembalikan NULL jika tidak ada perintah yang dijalankan dengan benar

Sintaksis

string exec( $command, $output, $return_var )

Parameter. Fungsi ini menerima tiga parameter seperti yang disebutkan di atas dan dijelaskan di bawah ini

  • $perintah. Parameter ini digunakan untuk menampung perintah yang akan dieksekusi
  • $output. Parameter ini digunakan untuk menentukan array yang akan diisi dengan setiap baris keluaran dari perintah
  • $return_var. Parameter $return_var hadir bersama dengan argumen output, kemudian mengembalikan status dari perintah yang dieksekusi akan ditulis ke variabel ini

Nilai Pengembalian. Fungsi ini mengembalikan perintah yang dieksekusi, pastikan untuk mengatur dan menggunakan parameter keluaran

Contoh




<?php

string exec( $command, $output, $return_var )
0

gfg.php
index.html
geeks.php
5
string exec( $command, $output, $return_var )
2
string exec( $command, $output, $return_var )
3
string exec( $command, $output, $return_var )
4
gfg.php
index.html
geeks.php
1

gfg.php
index.html
geeks.php
8

Keluaran

geeks.php

Referensi

  • http. //php. net/manual/en/fungsi. shell-exec. php
  • http. //php. net/manual/en/fungsi. eksekusi. php

PHP adalah bahasa skrip sisi server yang dirancang khusus untuk pengembangan web. Anda dapat mempelajari PHP dari bawah ke atas dengan mengikuti Tutorial PHP dan Contoh PHP ini

Apa itu exec () di php?

Fungsi exec() adalah fungsi bawaan dalam PHP yang digunakan untuk mengeksekusi program eksternal dan mengembalikan baris terakhir dari keluaran . Itu juga mengembalikan NULL jika tidak ada perintah yang dijalankan dengan benar.

Bagaimana cara menggunakan perintah exec di php?

Pada Windows exec() pertama-tama akan memulai cmd. exe untuk menjalankan perintah . Jika Anda ingin memulai program eksternal tanpa memulai cmd. exe gunakan proc_open() dengan set opsi bypass_shell.

Bagaimana cara mengaktifkan Shell_exec di php?

Cara mengaktifkan exec() .
Buka php.ini Anda. ini dan temukan bagian berikut
Hapus exec dari baris dan klik Save Changes
Jika Anda perlu menonaktifkan show_source, system atau shell_exec juga, tambahkan saja kembali ke baris dan simpan perubahannya

Apa itu passthru di php?

Fungsi passthru() mirip dengan fungsi exec() karena menjalankan perintah . Fungsi ini harus digunakan sebagai pengganti exec() atau system() ketika output dari perintah Unix adalah data biner yang perlu diteruskan langsung kembali ke browser.