这对我们来说是正确的方式glob()我正在尝试对服务器上的文件夹 TestFolder 进行不区分大小写的搜索。
$chid = "testFoLdER";
$dirchk2 = "/temp/files/" . glob('".$chid."') . "/" . $data[1] . ".doc";
@code_burgar 我做了这些更改以应用于示例code_burgar向我展示。它是否正确? 我在这里尝试做的是globistr找到套管,将文件夹重命名为小写。
$chid = (strtolower($_POST['chid']));
$findbatch = globistr($chid);
$results = glob($findbatch);
if ( !empty($results) ) {
$result = $results[0];
rename("/temp/files/" . $results . "/", "/temp/files/" . strtolower($chid) . "/");
}
else
{
$missing_dir = 'Folder containing files, Not Found: ' . $chid . "\r";
$errfile = fopen("/rec/" . $chid . "-errlog.txt", "a");
fwrite($errfile, $missing_dir . "\n");
fclose($errfile);
exit();
}
答案 0 :(得分:1)
这绝对不是使用glob()
的方法。 glob()
返回一个数组,并且您尝试在字符串连接中使用它。
正如Pekka所指出的,glob的PHP手册页有一些不区分大小写的示例代码。
您正在寻找的内容基本上是这些内容(globistr()来自PHP手册页评论):
$chid = globistr("testFoLdER");
$results = glob($chid);
if ( !empty($results) ) {
$result = $results[0];
$dirchk2 = "/temp/files/" . $result . "/" . $data[1] . ".doc";
} else {
echo('Not found');
}
答案 1 :(得分:1)
作为解决方法,您可以搜索包含 $ data [1]的 / temp / files / 中的所有文件夹。 '.doc'文件,然后遍历结果以进行不区分大小写的检查路径是否包含您的文件夹。
$file = "/temp/files/*/".$data[1].".doc";
$locations = glob($file);
$found = false;
foreach($locations as $l){
if(stripos($l,'/testfolder/') !== false){
$found = $l;
break;
}
}