Avatar billede mgjuhler Nybegynder
20. august 2014 - 09:58 Der er 3 kommentarer og
1 løsning

preg_match hjælp

Jeg skal have flyttet en masse data fra en gammel database og til en ny og skal i den forbindelse splitte noget indhold op så det passer ind i den nye database. Følgende data er fra et felt i den gamle database som så skal deles op i hver sin entry.

[page title="side 1"]
side 1 indhold her og her

[page title="side 2"]
side 2 indhold her

[page title="side 3"]
side 3 indhold her
Avatar billede JacoDK Nybegynder
20. august 2014 - 13:37 #1
Hej MJuhler,

Denne kode skulle gerne virke

<?php
   
    $value = '[page title="side 1"]';
    preg_match('[page title="(.*?)"]', $value, $matches);

    echo '<pre>'.$value.'</pre>';
    echo '<pre>'.$matches['1'].'</pre>';


?>
Avatar billede arne_v Ekspert
20. august 2014 - 15:13 #2
Lidt anderledes:

<?php
$s = "[page title=\"side 1\"]
side 1 indhold her og her

[page title=\"side 2\"]
side 2 indhold her

[page title=\"side 3\"]
side 3 indhold her";

preg_match_all('#\[page title="([^"]*)"\][\r\n]+([^\[]+)#is', $s, $matches);
for($i = 0; $i < count($matches[0]); $i++) {
    $title = $matches[1][$i];
    $content = $matches[2][$i];
    echo "$title : $content";
}
?>
Avatar billede mgjuhler Nybegynder
20. august 2014 - 16:20 #3
Arne din løsning virker perfekt! Vil du smide et svar?
Avatar billede arne_v Ekspert
20. august 2014 - 16:26 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester