Exec ile dosya yükleme, asılı betik

3 Cevap php

Temelde Özetle ben dosya yükledi kadar komut dosyası tutmak neden olan WinSCP, çalıştırmak için () exec kullanıyorum edilir. Komut devam eder ve yükleme arka planda çalışır, böylece bunu yapmak için yine de var mı?

PHP Koşu Win7 5.3.1.

3 Cevap

$pipe = popen("/bin/bash ./some_shell_script.sh argument_1","r");

Linux ve Windows altında hem de çalışıyor.

(Sadece boru kapatmayın ve ondan okumaya kalkmayın)

Süreç arka planda popen çalışır aracılığıyla kökenli iken PHP komut dosyası çalışmaya devam edecektir. Lütfen komut dosyasının sonuna veya () die bir çağrı ulaştığında diğer süreç tamamen çıkmadan önce kapatmak için bitirmek ve boru için, bekleyecek.

Bu function from the PHP Manual yardımcı olacak?

function runAsynchronously($path,$arguments) {
    $WshShell = new COM("WScript.Shell");
    $oShellLink = $WshShell->CreateShortcut("temp.lnk");
    $oShellLink->TargetPath = $path;
    $oShellLink->Arguments = $arguments;
    $oShellLink->WorkingDirectory = dirname($path);
    $oShellLink->WindowStyle = 1;
    $oShellLink->Save();
    $oExec = $WshShell->Run("temp.lnk", 7, false);
    unset($WshShell,$oShellLink,$oExec);
    unlink("temp.lnk");
}

Taken from PHP on a windows machine; Start process in background then Kill process.

PHP apache o exec tamamlamak için beklemek zorunda bu yüzden ayrı bir konu olarak çalıştırmak için tasarlanmamıştır. Bu böyle olunca, script bunu yapmak hangi bir exec çağrısı sırasında zaman ve bellek kısıtlamaları çalıştırmak olabilecek bir kullanıcı exec optimal çözüm daha az. Genellikle tavsiye edilmez.

Why not use the PHP functions for ftp? http://www.php.net/manual/en/function.ftp-get.php