PHP: Directory Dosyaları Bulma

6 Cevap

Bu php komut dosyası kullanarak C :/ (windows) bir dosyayı bulmak mümkün mü? Eğer evet ise, örnek kod / çözüm herhangi bir manuel var.

Edit: webserver in C :/ Directory gibi aynı PC üzerinde

Teşekkür ederim

6 Cevap

Eğer bir özyinelemeli arama arıyorsanız size spl yıllardan ilginizi çekebilir RecursiveDirectoryIterator.

<?php
$path = 'C:/';
$file = 'issetup.exe';

$rdi = new RecursiveDirectoryIterator($path);
$rit = new RecursiveIteratorIterator($rdi);
foreach( $rit as $path=>$info ) {
  if ( $file===$info->getFilename() ) {
    echo $path, "\n";
    break;
  }
}

Sürece yalnızca bir dizinde bakmak istediğiniz gibi, o zaman evet, PHP fonksiyonları kullanarak kodlama hızlıdır. Belirli bir dosya için ağacında özyinelemeli arama yapmak istiyorsanız Ama o zaman muhtemelen çok daha hızlı ödemek için olacak:

$cmd="dir $fname /s"
chdir("C:/");
$found=explode("\n",`$cmd`);

Ama bu gün NT işletim sistemi için yerleşik dosya indeksleme olduğuna inanıyorum - böylece daha hızlı bir arama için bir yere maruz kanca olmalıdır.

C.

Ben bu amaçla scandir kullanmak, şöyle:

$path = $_SERVER['DOCUMENT_ROOT'];
$files = scandir($path);
echo '<pre>';
if (count($files) > 2) {
  // first 2 entries are '.' and '..'
  $files = array_slice($files, 2);
  print_r($files);
}
echo '</pre>';

Go read up on http://php.net/manual/en/function.scandir.php And for help on manululating the resulting array: http://php.net/manual/en/ref.array.php

PHP yüklü Pazar sabahı şovmen nod üzerinde sunucu hakkında konuşurken, bu sürece web sunucusu ile HDD bu paylaşım izinleri alanları erişen gibi, PHP dosyası komutu ile sonsuz mümkün olmalıdır. PHP.net üzerinde ilk örnek kadar diyor ...

http://php.net/manual/en/function.file.php

Eğer kullanıcının makineden bahsediyoruz, bunlar <input id="uploader" name="uploader" type="file"> form öğesini kullanarak yüklemek için bir dosya seçebilirsiniz, ama bu tam olarak bu olduğundan, herhangi bir sunucu tarafı dili kullanarak göz olamaz.

Eğer C bahsediyoruz sürece: drive: sunucuda sürücü veya Windows makine üzerinde çalışan bir PHP komut satırı sürümü, PHP as a server side language, sizin C erişimi yok.

Eğer are C atıfta eğer: sunucuda sürücü, daha sonra readdir function (haim evgi önerilen) sizin için çalışması gerekir.

Readdir başvuru sayfası uyarıyı okudum ve ilk rehberini açmak için hatırlamak hatırlıyorum. Fonksiyonu referans örnek kodu sağlar.

Ben (yani yerel bir komut dosyası gibi) gerçek PHP yorumlayıcısı çalıştırmak istediğiniz varsayalım, (php 5) SPL kullanabilirsiniz

sadece 2 örnekler için here ve here bkz. Eğer PHP manual ve web üzerinde başkalarının çok okumak, daha fazla örnekler yeterince arama varsa.