PHP: Extrage părți individuale ale tuturor fișierelor de fișiere într-un director

Aș dori să fiu în stare să introduc toate fișierele dintr-un director (cel în care se află scriptul) și să extrag porțiuni ale numelui și să îl transform în CSV lizibil.

Din:

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

La:

ch-026, Metallica-Morphing Mauve-14pt

... sau oricum Excel sau Numbers ar putea să o citească.


La cererea câtorva dintre voi, voi clarifica că vreau să taie linia a doua "-" și să o înlocuiesc cu virgulă și spațiu.

0
@ AurelioDeRosa, cum în lume aș putea face mai simplu să înțeleg? Vreau să analizez numele într-un șir separat de virgulă ... sau cel mai bine pentru CSV.
adăugat autor dcolumbus, sursa
Aș începe prin a învăța clasa iterator a directorului SPL și/sau comanda glob globală php.net/glob
adăugat autor Itay Moav -Malimovka, sursa
Vă rugăm să vă îmbunătățiți întrebarea.
adăugat autor Aurelio De Rosa, sursa
De exemplu, definiți "porțiunea"! Câte caractere este o "porțiune"?
adăugat autor Aurelio De Rosa, sursa
@ AurelioDeRosa - Cum doriți să îmbunătățiți întrebarea?
adăugat autor Jared Farrish, sursa
De fapt, ai putea fi mai explicit. De exemplu. Toate intrările încep cu secvența "ch-026"?
adăugat autor SteAp, sursa

2 răspunsuri

În primul rând, utilizați

$fileList = scandir( $directoryPath );

pentru a scana directorul. Apoi buclele de genul acesta

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

În cele din urmă, utilizați preg_match pentru a potrivi intrări. În general:

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

În cazul tău un model cum ar fi

$pattern = '/^ch-\d*-(.*)-\d*pt\.jpg$/';

ar putea face treaba.

În cele din urmă, utilizați informațiile furnizate în potrivirile $ pentru a scrie fișierul CSV.

2
adăugat

Puteți "extrage porțiuni ale numelui și transforma-l în CSV lizibil" pentru a se potrivi exemplului dvs. folosind regexp:

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

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

0
adăugat
PHP România, Moldova
PHP România, Moldova
167 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT

PHP jobs, România, Moldova
PHP jobs, România, Moldova
88 participanți

Parteneri: ciupacabra.com Toate grupurile IT: @Grupuri_IT