Rumah pembangunan bahagian belakang tutorial php 关于php中使用exec,system等函数调用系统命令的方法

关于php中使用exec,system等函数调用系统命令的方法

Jun 21, 2018 pm 02:55 PM
exec system

这篇文章主要介绍了关于php中使用exec,system等函数调用系统命令的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

PHP作为一种服务器端的脚本语言,像编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任。但事情不总是如此,有时为了实现某个功能,必须借助于操作系统的外部程序(或者称之为命令),这样可以做到事半功倍

php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。 

在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了。 

今天整理一下常用的调用系统函数发出来和大家分享经验。 

注意:要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的。 

先看一下php手册对这二个函数的解释: 

exec --- 执行外部程式 

  语法 : string exec ( string command [, array &output [, int &return_var]] ) 

  说明 : 

  exec( )执行给予的命令command,不过它并不会输出任何东西,它简单的从命令的结果中传回最后一行,如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。 

  如果有给予参数array,则指定的数组将会被命令所输出的每一行填满,注意 : 如果数组先前已经包含了一些元素的话,exec( )将会把它附加在数组的后面,如果你不想要此函数附加元素的话,你可以在传递此数组给exec( )之前呼叫unset( )。 

  如果有给予参数array和return_var,则传回执行的状态命令将会写到这个变量。 

  注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。 

  注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。 

  system --- 执行外部程式并且显示输出 

  语法 : string system ( string command [, int &return_var] ) 

  说明 : 

       system( )执行给予的命令command,并且输出结果。如果有给予参数return_var,则执行命令的状态码将会写到这个变量。

  注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。 

  注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。 

  如果PHP是运作成伺服器模组,在输出每一行后,system( )会试着自动地清除web伺服器的输出缓冲。 

  成功则传回命令的最后一行,失败则传回false。 

  如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。 

  这二个都是用来调用系统shell命令, 

  不同点: 

  exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败 

  systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败 

exec示例:

<?php 
$a = exec("dir",$out,$status); 
print_r($a); 
print_r($out); 
print_r($status); 
?>
Salin selepas log masuk

system示例:

<?php 
$a = system("dir",$out); 
print_r($a); 
print_r($out); 
?>
Salin selepas log masuk

system、exce、passthru区别
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于PHP中preg_replace() 正则替换所有符合条件的字符串的方法

PHP中filter_var() 函数和Filter 函数的分析

关于php中str_replace替换漏洞的分析

Atas ialah kandungan terperinci 关于php中使用exec,system等函数调用系统命令的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apa yang perlu dilakukan jika php exec tidak dapat dilaksanakan Apa yang perlu dilakukan jika php exec tidak dapat dilaksanakan Nov 22, 2022 am 10:16 AM

Penyelesaian kepada masalah yang php exec tidak dapat dilaksanakan: 1. Cari fail konfigurasi php php.ini, cari "disable_functions" dalam fail, dan alih keluar "exec" dan "shell_exec" 2. Pergi ke pelayan untuk mengubah suai kebenaran fail; 3. Ubah suai konfigurasi Mod selamat adalah "safe_mode=On".

Tafsiran dokumentasi Java: Analisis penggunaan kaedah currentTimeMillis() kelas Sistem Tafsiran dokumentasi Java: Analisis penggunaan kaedah currentTimeMillis() kelas Sistem Nov 03, 2023 am 09:30 AM

Tafsiran dokumen Java: Analisis penggunaan kaedah currentTimeMillis() kelas Sistem, contoh kod khusus diperlukan Dalam pengaturcaraan Java, kelas Sistem ialah kelas yang sangat penting, yang merangkumi beberapa sifat dan operasi yang berkaitan dengan sistem. Antaranya, kaedah currentTimeMillis ialah kaedah yang sangat biasa digunakan dalam kelas Sistem Artikel ini akan menerangkan kaedah secara terperinci dan memberikan contoh kod. 1. Gambaran keseluruhan kaedah TimeMillis semasa

Ralat skrin biru Win10: Pengecualian perkhidmatan sistem Ralat skrin biru Win10: Pengecualian perkhidmatan sistem Dec 29, 2023 pm 04:04 PM

Sistem win10 adalah sistem yang sangat mudah digunakan dan sangat pintar Keserasian yang kukuh boleh memastikan bahawa sistem pada asasnya tidak akan menghadapi sebarang masalah semasa penggunaan biasa Walau bagaimanapun, apabila orang terus menggunakan sistem win10, kadangkala sistem itu juga mempunyai masalah. Masalah Win10 boot kod penamatan skrin biru SystemServiceException, hari ini editor akan membawa anda penyelesaian untuk Win10 boot kod penamatan skrin biru SystemServiceException Jika perlu, sila muat turun dengan cepat. Penyelesaian kepada skrin biru win10systemserviceexception: Kaedah 1: 1. Gunakan kekunci Windows + R untuk membuka Run dan masukkan “contr

Apa yang perlu dilakukan jika keputusan php exec bercelaru Apa yang perlu dilakukan jika keputusan php exec bercelaru Oct 21, 2022 am 10:17 AM

Penyelesaian kepada keputusan php exec yang bercelaru: 1. Buka fail kod PHP yang sepadan 2. Lihat kod di exec 3. Ubah suai kandungan kepada "exec("python cmd.py",$str); foreach($str as $; res){$str = iconv("GBK", "UTF-8", $res);}echo $str;".

Apakah sistem komputer? Apakah sistem komputer? Feb 22, 2023 am 10:25 AM

Sistem komputer adalah proses sistem yang agak biasa Anda akan sering melihat sistem apabila melihat proses ini hanya bermaksud sistem komputer, jika proses system.exe muncul pada komputer, ia perlu dipadamkan. ini adalah fail yang dihasilkan oleh virus kuda Trojan Tiada akhiran exe di sebalik sistem sebenar.

Bagaimana untuk menggunakan kelas Objek dan kelas Sistem di Java? Bagaimana untuk menggunakan kelas Objek dan kelas Sistem di Java? Apr 23, 2023 pm 11:28 PM

Objek ialah kelas asas bagi semua kelas Java, bahagian atas keseluruhan struktur warisan kelas, dan kelas paling abstrak. Semua orang menggunakan toString(), equals(), hashCode(), wait(), notify(), getClass() dan kaedah lain setiap hari Mungkin mereka tidak menyedari bahawa ia adalah kaedah Object, dan mereka tidak melihat apa kaedah lain yang Object ada Dan fikirkan mengapa kaedah ini harus diletakkan dalam Object. 1. Pengenalan kepada kelas JavaObject - kelas super semua kelas Object ialah kelas khas dalam perpustakaan kelas Java dan juga merupakan kelas induk bagi semua kelas. Dalam erti kata lain, Java membenarkan apa-apa jenis objek untuk diberikan kepada jenis Objek

Manual arahan Linux exec Manual arahan Linux exec Feb 18, 2024 pm 04:42 PM

Penerangan Fungsi Perintah exec digunakan dalam Linux untuk memanggil dan melaksanakan arahan yang ditentukan. Perintah exec biasanya digunakan dalam skrip shell untuk melaksanakan arahan lain. Apabila menggunakan perintah exec dalam terminal semasa, arahan yang ditentukan akan menggantikan proses semasa selepas pelaksanaan, bukannya mencipta proses anak baharu. Eksekusi sintaks perintah [pilihan] Maksud pilihan Maksud pilihan -c Gunakan persekitaran kosong untuk melaksanakan -ashell akan menghantar nama sebagai parameter sifar kepada arahan yang dilaksanakan -l Letakkan tanda sempang pada permulaan shell Parameter dihantar ke rujukan arahan Contoh Contoh 1// Mula-mula gunakan arahan gema untuk mengeluarkan teks "www.linuxyz.cn": [root@bunian~]#echoww

muat turun sistem versi bahasa inggeris windows7 muat turun sistem versi bahasa inggeris windows7 Jul 15, 2023 pm 07:45 PM

Saya percaya bahawa netizen sangat mengenali sistem Windows 7 Pernahkah anda mendengar tentang sistem versi Bahasa Inggeris Windows 7 Saya percaya bahawa ramai netizen telah mendengar tentang sistem Windows 7 Bahasa Inggeris sistem versi untuk dimuat turun Hari ini saya akan Editor akan berkongsi pengenalan versi asal win7 dalam bahasa Inggeris dengan semua orang, supaya netizen dapat memahami versi asal win7 dalam bahasa Inggeris. Berikut adalah untuk memberitahu anda tempat untuk memuat turun sistem Windows 7 versi Bahasa Inggeris. Sistem bahasa Inggeris asal win7 telah dikeluarkan kepada MSDN untuk muat turun langganan Versi bersepadu bahasa Inggeris rasmi pertama kali dikeluarkan, Windows7WithSP1, iaitu imej CD Windows7 dengan SP1 bersepadu. Termasuk SP1 kendiri untuk berbilang bahasa

See all articles