PHP: Извлечение отдельных частей всех имен файлов файлов в директории - PullRequest
0 голосов
/ 12 ноября 2011

Я бы хотел иметь возможность циклически перебирать все файлы в каталоге (в том, в котором находится скрипт), извлекать части имени и превращать его в читаемый CSV.

From:

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

Кому:

ch-026, Metallica-Morphing Mauve-14pt

... или, тем не менее, Excel или Numbers смогут прочитать его.


По просьбе парыЯ уточню, что хочу вырезать вторую черту "-" и заменить ее запятой и пробелом.

Ответы [ 2 ]

2 голосов
/ 12 ноября 2011

Сначала используйте

$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$/';

может выполнить эту работу.

Наконец, используйте информацию, представленную в $ match, для записи файла CSV.

0 голосов
/ 12 ноября 2011

Вы можете «извлечь части имени и превратить его в читаемый CSV», чтобы соответствовать вашему примеру, используя regexp:

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

$filename можно получить с помощью сценария Стефана Пантке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...