Komut dizim bittikten sonra dosyayı silebilirim, ancak çalıştırılırken, fclose()
numaralı telefondan sonra bile dokunamadım.PHP, fclose dosyasından sonra açılamıyor
$Files = glob("$_SERVER[DOCUMENT_ROOT]/files/*.csv");
$File = fopen($Files[0], "r");
//while (($Data = fgetcsv($File)) !== false) {...
$i = 0;
while (is_resource($File)) {
$i && sleep(1);
echo "Closing handle.\n";
fclose($File);
if (++$i > 5)
die("Could not close handle.");
}
foreach ($Files as $File) {
$i = 0;
while (file_exists($File)) {
$i && sleep(1);
echo "Deleting file.\n";
@unlink($File);
echo '[email protected]:~$ ', $Command = "rm -f '$File' 2>&1", "\n", shell_exec($Command);
if (++$i > 5)
die("Could not delete the file.");
}
}
ben unlink()
aracılığıyla silmeye çalışırken ve kabuk komutlarını kullanarak ve ne çalışıyor görmüyor, hem bana bu hatayı verebilir gibi::
İşte kod ı kullanmaya çalışıyorum edilirrm: cannot remove 'invincible-file.csv': Text file busy
Ayrıca, betiğin biraz aşırı olabileceğini fark ettim, ancak bu tamamen işe yaramayacağımı ve ek kodların bir kısmının sadece neler olduğunu denemek ve hata ayıklamak için çıktı amaçlı olduğunu anlıyorum.
'$ Files' içeriği nedir? Ayrıca, okuma için "r" modlu 'fopen' kullanın ve daha sonra dosyayı silmeye çalışıyorsunuz. Kullanıcının silmeye izni olduğundan emin misiniz? Belki bir izin meselesidir. Diğer kodlardan hiçbirini kullanmadan bağlantıyı kaldırmayı deneyin. –
'un' 'unlink'den önce kaldırın, böylece php'nin neden başarısız olduğunu söyleyebilmenize izin verebilirsiniz. Ayrıca, 'fclose'un dönüş değerini kontrol edin. – chiliNUT
@KodosJohnson Şimdiye kadar bana yardım ettiğin için teşekkürler, 'bağlantısızlığı' hiç fopen olmadan denemeye çalışacağım, ve ben daha fazla kod ekledim, umarım daha önemli parçaları kaçırmıyorum –