Çoklu aramaları izin kabuk PHP açık tutmak?

2 Cevap php

Nasıl ben PHP ile kapatana kadar kabuk oturumu açık kalmak için izin verebilir?

Benim örnekte ben kabuk komutu ile bazı dosyaları yayımlamak için ncftp kullanmak istiyorum. O çok yavaş olduğu ve performans bir konudur çünkü PHP'nin dahili FTP bırakmak istiyorum.

Bu ncftpput Bir dosya veya dizin yayımlamak için kullanmak kolaydır. Ben bir dizi döngü 10 dosya söylemek istiyorsanız, komut dosyası, oturum yayımlamak, oturumu, oturum, yayımlamak, oturumu zorunda kalacak ...

Böyle bir şey işe yarayabilir eğer çok daha uygun olacaktır.

shell_exec('ncftp -u username -p password');

foreach ( $files as $file )
{
    shell_exec('put '.$file['local_path'].' '.$file['remote_path']);
}

shell_exec('quit');

Bu mümkün mü?

Teşekkür ederiz!

2 Cevap

Sadece muhtemelen popen() veya kullanabilirsiniz bir süreç erişim gerekiyorsa proc_open() bunu yapmak için.

Böyle bir şey işe yarayabilir:

$handle = popen('ncftp -u username -p password'  , 'w');

foreach ( $files as $file ) {
    fwrite($handle, 'put ' . $file['local_path']. ' '.$file['remote_path'] . "\n");
}

pclose($handle);

Bu PHP'nin yerleşik FTP işlevselliği veya Expect için bir iş olabilir gibi görünüyor.