PHP:提取目录中文件的所有文件名的各个部分

时间:2011-11-12 00:47:00

标签: php string file

我希望能够遍历目录中的所有文件(脚本所在的文件)并提取部分名称并将其转换为CSV可读。

自:

ch-026-Metallic-Morphing Mauve-14pt.jpg

要:

ch-026, Metallica-Morphing Mauve-14pt

......或者Excel或Numbers可以阅读它。


应你们几个人的要求,我会澄清我要删除第二个“ - ”短划线并用逗号和空格替换它。

2 个答案:

答案 0 :(得分:2)

首先,使用

$fileList = scandir( $directoryPath );

扫描目录。然后像这样循环

foreach( $fileList as $fileName ) {
 ...
}

最后,使用preg_match来匹配条目。一般为:

$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, fileName, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);

在你的情况下,像

这样的模式
$pattern = '/^ch-\d*-(.*)-\d*pt\.jpg$/';

可能会完成这项工作。

最后,使用$ matches中提供的信息编写CSV文件。

答案 1 :(得分:0)

您可以“提取名称的一部分并将其转换为CSV可读”以使用regexp匹配您的示例:

$csv_contents .= preg_replace('/^([^-]+-[^-]+)-(.+)\.jpg$/','\1, \2',$filename)."\n";

$filename可以使用Stefan Pantke的剧本获得。