Php 搜索目录,仅搜索jpg/js和数组中的fetch
我正在使用一个函数来显示所有文件。但我不知道如何在一个逗号分隔的变量中获取它,然后在数组中获取它。 这是我使用的函数Php 搜索目录,仅搜索jpg/js和数组中的fetch,php,arrays,function,Php,Arrays,Function,我正在使用一个函数来显示所有文件。但我不知道如何在一个逗号分隔的变量中获取它,然后在数组中获取它。 这是我使用的函数 function recursiveGlob($dir, $ext1, $ext2, &$array) { $globFiles = glob("$dir/*.$ext1"); $globFiles2 = glob("$dir/*.$ext2"); $globDirs = glob("$dir/*", GLOB_ONLYDIR); foreach ($globDirs
function recursiveGlob($dir, $ext1, $ext2, &$array) {
$globFiles = glob("$dir/*.$ext1");
$globFiles2 = glob("$dir/*.$ext2");
$globDirs = glob("$dir/*", GLOB_ONLYDIR);
foreach ($globDirs as $dir) {
recursiveGlob($dir, $ext1, $ext2);
}
foreach ($globFiles as $file) {
// print "$file<br>"; // Replace '\n' with '<br />' if outputting to browser
$array[] = $file;
}
foreach ($globFiles2 as $file) {
// print "$file<br>"; // Replace '\n' with '<br />' if outputting to browser
$array[] = $file;
}
}
$array = array ();
recursiveGlob('C:\wamp\www\scanner\scanner', 'png', 'js', $array);
函数recursiveGlob($dir、$ext1、$ext2和$array){
$globFiles=glob(“$dir/*.$ext1”);
$globFiles2=glob($dir/*.$ext2”);
$globDirs=glob($dir/*,glob_ONLYDIR);
foreach($globDirs作为$dir){
递归glob($dir、$ext1、$ext2);
}
foreach($globFiles作为$file){
//打印“$file”;//如果输出到浏览器,则将“\n”替换为“
” $array[]=$file; } foreach($globFiles2作为$file){ //打印“$file
”;//如果输出到浏览器,则将“\n”替换为“
” $array[]=$file; } } $array=array(); recursiveGlob('C:\wamp\www\scanner\scanner','png','js',$array);
这可能是个愚蠢的问题。但是,请帮帮我。似乎最终你想要一个包含所有找到的文件的数组,只需替换即可
print $file;
借
然后,使用引用在递归函数中发送此数组:
function recursiveGlob($dir, $ext1, $ext2, &$array)
然后像这样使用它:
$array = array ();
recursiveGlob('C:\wamp\www\scanner\scanner', 'png', 'js', $array);
// At this point, $array will be an array with every files you found.
告诉我我是否正确地解决了您的问题,并且如果您需要按路径级别排列阵列,则不确定您要查找的是什么,但这样可以生成更清晰的阵列
另一个不带引用并返回数组的解决方案:
function recursiveGlob($dir, $ext1, $ext2) {
$globFiles = glob("$dir/*.$ext1");
$globFiles2 = glob("$dir/*.$ext2");
$globDirs = glob("$dir/*", GLOB_ONLYDIR);
$array = array ();
$array_file = array ();
foreach ($globDirs as $dir) {
$array = array_merge ($array, recursiveGlob($dir, $ext1, $ext2));
}
foreach ($globFiles as $file) {
// print "$file<br>"; // Replace '\n' with '<br />' if outputting to browser
$array_file[] = $file;
}
$array = array_merge ($array, $array_file);
$array_file = array ();
foreach ($globFiles2 as $file) {
// print "$file<br>"; // Replace '\n' with '<br />' if outputting to browser
$array_file[] = $file;
}
$array = array_merge ($array, $array_file);
return $array;
}
$results = recursiveGlob('C:\wamp\www\scanner\scanner', 'png', 'js');
函数recursiveGlob($dir、$ext1、$ext2){
$globFiles=glob(“$dir/*.$ext1”);
$globFiles2=glob($dir/*.$ext2”);
$globDirs=glob($dir/*,glob_ONLYDIR);
$array=array();
$array_file=array();
foreach($globDirs作为$dir){
$array=array_merge($array,recursiveGlob($dir,$ext1,$ext2));
}
foreach($globFiles作为$file){
//打印“$file”;//如果输出到浏览器,则将“\n”替换为“
” $array_file[]=$file; } $array=array\u merge($array,$array\u file); $array_file=array(); foreach($globFiles2作为$file){ //打印“$file
”;//如果输出到浏览器,则将“\n”替换为“
” $array_file[]=$file; } $array=array\u merge($array,$array\u file); 返回$array; } $results=recursiveGlob('C:\wamp\www\scanner\scanner','png','js'); 试试这个:
<?php
$iterator = new DirectoryIterator("folder name");
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
if ($fileinfo->getExtension() == "jpg" || $fileinfo->getExtension() == "js"){
echo $fileinfo->getBasename('.'.$fileinfo->getExtension())."<br>";
}
}
}
?>
获取变量中的所有文件
实际上没有意义。您介意重命名吗?谢谢您的回答,但我收到了警告:警告:缺少recursiveGlob的参数4(您忘记用我给您的替换调用recursiveGlob的最后一行。在末尾添加$array
参数。recursiveGlob('C:\wamp\www\scanner\scanner','png','js;
->recursiveGlob('C:\wamp\www\scanner\scanner','png','js',$array)
我已经添加了,正如你所说,根据你的回答编辑了我的问题代码。哦,是的,顺便说一句,你也必须在递归函数中替换它。在第一个foreach循环中。对不起,我没有想到。是的,你也可以帮我在函数外的变量中获取它。例如,recursiveGlob('C:\wamp\www\scanner\scanner','png','js','array);,我可以在变量中得到它吗,例如:$result=recursiveGlob('C:\wamp\www\scanner\scanner','png','js','array);
<?php
$iterator = new DirectoryIterator("folder name");
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
if ($fileinfo->getExtension() == "jpg" || $fileinfo->getExtension() == "js"){
echo $fileinfo->getBasename('.'.$fileinfo->getExtension())."<br>";
}
}
}
?>