我在使用方括号的路径目录时使用glob函数时遇到问题.
// Example 1 - working
$path = 'temp'. DIRECTORY_SEParaTOR .'dir - name';
$files = glob($path . DIRECTORY_SEParaTOR . '*.txt');
// List all files
echo '<pre>';
print_r($files);
echo '</pre>';
上面的代码是有效的,但是当目录名称带有方括号时,如dir [name]或dir – [name],那么它无效.
// Example 2 - not working
$path = 'temp'. DIRECTORY_SEParaTOR .'dir - [name]';
$files = glob($path . DIRECTORY_SEParaTOR . '*.txt');
// result got empty if file on that directory
echo '<pre>';
print_r($files);
echo '</pre>';
解决方法:
谢谢你们所有人.
$path = 'temp'. DIRECTORY_SEParaTOR .'dir - [name]';
$path = str_replace('[', '\[', $path);
$path = str_replace(']', '\]', $path);
$path = str_replace('\[', '[[]', $path);
$path = str_replace('\]', '[]]', $path);
$files = glob($path . DIRECTORY_SEParaTOR . '*.txt');
// List files
echo '<pre>';
print_r($files);
echo '</pre>';