Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php在目录中搜索文件_Php_File_Search - Fatal编程技术网

使用php在目录中搜索文件

使用php在目录中搜索文件,php,file,search,Php,File,Search,对于作为自己的程序或web应用程序运行的php脚本,如何使用php列出文件夹及其子文件夹中的所有文件。你为什么要这么做 echo shell_exec('find -name *'); 但是你可以在壳中运行它 如果您希望web应用程序运行此脚本,www数据将需要运行该脚本的权限,而让它这样做是非常不安全的。相反,您可以让具有相应权限的用户登录并执行此操作。没有那么不安全。您指的是作为自己的程序或web应用程序运行的php脚本。你为什么要这么做 echo shell_exec('find -na

对于作为自己的程序或web应用程序运行的php脚本,如何使用php列出文件夹及其子文件夹中的所有文件。你为什么要这么做

echo shell_exec('find -name *');
但是你可以在壳中运行它


如果您希望web应用程序运行此脚本,www数据将需要运行该脚本的权限,而让它这样做是非常不安全的。相反,您可以让具有相应权限的用户登录并执行此操作。没有那么不安全。

您指的是作为自己的程序或web应用程序运行的php脚本。你为什么要这么做

echo shell_exec('find -name *');
但是你可以在壳中运行它


如果您希望web应用程序运行此脚本,www数据将需要运行该脚本的权限,而让它这样做是非常不安全的。相反,您可以让具有相应权限的用户登录并执行此操作。没有那么不安全。

您可以编写一个脚本,使用数组中的php获取文件夹(和子文件夹)中的所有文件。然后可以在该数组中搜索特定文件

示例:

<?php
    $dir    = '/tmp';
    $files = scandir($dir);
    print_r($files); 
?>
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)

您可以编写一个脚本,使用数组中的php获取文件夹(和子文件夹)中的所有文件。然后可以在该数组中搜索特定文件

示例:

<?php
    $dir    = '/tmp';
    $files = scandir($dir);
    print_r($files); 
?>
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)

您可以使用SPL迭代器。特别是
递归目录迭代器
,它将递归遍历给定的目录结构

像这样:

$realpath = realpath('/path/to/file');


$fileObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($realpath),
                 RecursiveIteratorIterator::SELF_FIRST);

foreach($fileObjects as $key => $object){
    if($object->getFilename() === 'filename.png') {
        echo $object->getPathname();
    }
}

SELF\u FIRST
迭代模式基本上告诉迭代器,父项要放在第一位(父项优先)。

您可以使用SPL迭代器。特别是
递归目录迭代器
,它将递归遍历给定的目录结构

像这样:

$realpath = realpath('/path/to/file');


$fileObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($realpath),
                 RecursiveIteratorIterator::SELF_FIRST);

foreach($fileObjects as $key => $object){
    if($object->getFilename() === 'filename.png') {
        echo $object->getPathname();
    }
}

SELF\u FIRST
迭代模式基本上告诉迭代器父项要放在第一位(父项在第一位)。

如果您希望能够为所有txt文件指定掩码或类似于*.txt的内容,那么没有比“”:)更好的函数了。

如果您希望能够指定掩码或其他内容,与所有txt文件的*.txt一样,没有比“”更好的函数了:)

我想在运行网页时搜索文件夹及其子文件夹中的特定文件。您需要准确搜索此文件的内容吗?我想在运行网页时搜索文件夹及其子文件夹中的特定文件。您需要准确搜索此文件的内容是什么?
SELF\u FIRST
对于仅列出文件可能会混淆操作。
SELF\u FIRST
对于仅列出文件并不特别有用,可能会混淆操作。