Sistem () Fonksiyonu
PHP'deki sistem işlevi, yürütme komutuyla birlikte bir dize argümanı ve bu komuta iletilmesini istediğiniz bağımsız değişkenleri alır. Bu işlev belirtilen komutu yürütür ve sonuçta ortaya çıkan metni çıktı akışına (bir web sunucusu durumundaki HTTP çıktısı veya PHP'yi komut satırı aracı olarak çalıştırıyorsanız konsol) döker. Bu işlevin geri dönüşü, metin çıktısı yayınlıyorsa, programın son çıktı satırıdır.
Exec () Fonksiyonu
Sistem işlevi oldukça kullanışlı ve güçlüdür, ancak bununla ilgili en büyük sorunlardan biri, programdan elde edilen tüm metinlerin doğrudan çıkış akışına gitmesidir. Ortaya çıkan metni biçimlendirmek ve farklı bir şekilde görüntülemek veya hiç göstermemek isteyebileceğiniz durumlar olacaktır.
Bunun için PHP'deki exec fonksiyonu mükemmel şekilde uyarlanmıştır. Yürütülen program tarafından oluşturulan tüm metni çıkış akışına otomatik olarak dökmek yerine, bu metni işleve ikinci parametrede döndürülen bir diziye koyma fırsatı verir:
Shell_exec () Fonksiyonu
Şimdiye kadar yürütmekte olduğumuz programların çoğu, az çok gerçek programlar olmuştur1. Ancak, Windows ve Unix kullanıcılarının çalıştığı ortam aslında bundan çok daha zengindir. Windows kullanıcıları cmd.exe Windows Komut İstemi programını kullanma seçeneğine sahiptir. Bu program komut kabuğu olarak bilinir.
Passthru () Fonksiyonu
PHP'nin şimdiye kadar gördüklerimize benzer sağladığı büyüleyici bir işlev passthru işlevidir. Bu işlev, diğerleri gibi, anlattığınız programı yürütür. Ancak, bu programdan derhal ham çıktıyı PHP'nin şu anda çalıştığı çıktı akışına göndermeye devam eder (yani bir web sunucusu senaryosundaki HTTP veya PHP'nin komut satırı sürümündeki kabuk).
Proc_open () Fonksiyonu ve popen ()
fonksiyonu
proc_open (), popen () işlevine benzer, ancak program yürütme üzerinde çok daha fazla denetim sağlar. cmd kabuk tarafından yürütülecek komuttur. descriptorspec, anahtarın tanımlayıcı numarasını temsil ettiği ve değerin PHP'nin bu tanımlayıcıyı alt sürece nasıl geçireceğini temsil ettiği dizinlenmiş bir dizidir. borular, oluşturulan boruların PHP'nin sonuna karşılık gelen dizinlenmiş bir dosya işaretçisi dizisine ayarlanır. Dönüş değeri, süreci temsil eden bir kaynaktır; işiniz bittiğinde proc_close () kullanarak serbest bırakmalısınız.
proc_open()
vepopen()
her ikisi de ortaya çıkan süreç üzerinde daha yüksek bir kontrole izin verir.