FTP üzerinden dizinin izinlerini alma

1 Cevap php

Bu gibi FTP komut "STAT" üzerinden bir dizinin izinlerini almak çalışıyorum:

$directory_list = ftp_raw($conn_id,'STAT '.$path);

Yukarıdaki komut dosyaları ve subdirs dahil bütün dizin içeriğini listeler. Ben sonra ben kontrol etmek gerekir dizinin döndürülen veri dizisi arama, ve benzeri bir şey almak:

drwxr-xr-x   3 user  group     77824 May 13 10:15 Targetdir

Bu bana TARGETDIR chmod 0755 olduğunu öğrenmek için drwxr-xr-x dizeyi ayrıştırmak izin verir.

Içeren dizin 5000 dosyaları olduğunda sorundur. A) Bu çok uzun bir zaman alır, ve B) ftp_raw işlevi sadece 10 çalıştırır boş bir dizi 1 döndürür. Dışarı zamanlama ya da ne exactely sorun eğer ben bilmiyorum.

Dizinin izinlerini bulmak için daha iyi bir yolu var mı? "STAT" komutu alınan fiels sayısını sınırlamak için bir yolu var mı? Ben gerçekten sadece top 5, diğer 4995 dosyalar için gerek gerekir.

Herkes biliyor mu, neden benim komut zaman% 100 çalışır ETMEM? Neden kıracak? Hatta benim hata yeniden olamaz, rastgele olur.

1 Cevap

Sorularınızı ftp_exec örneği bakın. Dosyaların listesine bu şekilde oluşturabilir, daha sonra download ve ayrıştırmak.

ftp_exec($conn_id, 'ls -al >files.txt');

ya dizinin adını biliyor ve tek tek ise:

ftp_exec($conn_id, 'ls -ld '.$DIRECTORY.' >permissions.txt');

Eğer exec izin deneyin yoksa:

ftp_nlist ($conn, "-ld ".$DIRECTORY);