PHP: извлечение отдельных частей всех файлов файлов в директории

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

Из:

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

Для того, чтобы:

ch-026, Metallica-Morphing Mauve-14pt

... или Excel или Numbers могли бы прочитать его.


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

0
@AurelioDeRosa, как в мире я мог бы сделать это проще понять? Я хочу проанализировать имя в строку, разделенную запятой ... или же лучше всего подходит для CSV.
добавлено автор dcolumbus, источник
Я бы начал с изучения класса итератора каталога SPL и/или команды glob php.net/glob
добавлено автор Itay Moav -Malimovka, источник
Пожалуйста, улучшите свой вопрос.
добавлено автор Aurelio De Rosa, источник
Например, определите «часть»! Сколько символов является «частью»?
добавлено автор Aurelio De Rosa, источник
@AurelioDeRosa - Как вы хотите, чтобы OP улучшил вопрос?
добавлено автор Jared Farrish, источник
На самом деле, вы можете быть более явным. Например. Все записи начинаются с последовательности «ch-026»?
добавлено автор SteAp, источник

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

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

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

2
добавлено

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

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

$filename may be obtained using Stefan Pantke's script.

0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp