exec fonksiyonu çalışmıyor

3 Cevap php

I http://kevin.vanzonneveld.net/techblog/article/convert_anything_to_tree_structures_in_php/ bu kodu bulundu, ancak ben işe alamadım. Ben WIndow çevre üzerinde çalışıyorum ve satılabilir çalışma klasörü içindeki klasörü olduğu kullandığım yol / satılabilir olduğunu:

if(exec("find /etc/php5", $files)){
    // the $files array now holds the path as it's values,
    // but we also want the paths as keys:
    $key_files = array_combine(array_values($files), array_values($files));

    // show the array
    print_r($key_files);
}

Herkes bana yardımcı olabilir misiniz?

3 Cevap

find is a Linux command (an external Linux program).
Which means it will not be present on windows...

Ve /etc/php5 gerçekten bir dizine bir UNIX yolu gibi görünüyor; ve bir Windows dizine bir yol gibi görünmüyor.

Yani, burada iki sorun:

  • You have to find an equivalent of... find.
    • Belki Cygwin gibi bir şey kullanıyor?
  • Sen yolunu adapte olmak zorunda, bu yüzden sistem uyuyor


But I'd say that a PHP-only solution would probably be better : there are functions and classes that will allow you to search files and iterate over the filesystem -- and it would work on both Linux and Windows, not depending on any external program.

Örneğin, bir dizin üzerinde yineleme için, size RecursiveDirectoryIterator class -- and maybe also DirectoryIterator bir göz atmak isteyebilirsiniz.

Sen hiç find komutu, ne de bir windows makinede bir /etc/php5 dizin almak için gidiyoruz. Kullanıcı kullan PHP'nin yerleşik glob or the DirectoryIterator RecursiveDirectoryIterator (Thanks Pascal :) instead. Glob can't iterate through sub-folders natively, but there are simple globr uygulamaları bağlantılı sayfada Notlar katkılarıyla. Yineleyici yerel yapabilirsiniz.

i denemedim, ama "dir / s / bc: \ somedir" windows "bulmak" için hızlı bir yedek olarak işe yarayabilir. daha iyi (ve daha taşınabilir) çözümü yinelemeli bir dizindeki tüm dosyaları listelemek için RecursiveDirectoryIterator veya PHP'nin opendir / readdir fonksiyonlarını kullanmak olacaktır.

see example code here for example: http://php.net/manual/en/function.readdir.php