Avatar billede drbean Nybegynder
20. maj 2005 - 20:33 Der er 4 kommentarer og
2 løsninger

preg_split, forklaring

Hej ...

Jeg har et godt spørgsmål, (syntes jeg selv) en hurtig forklaring af preg_split().

Jeg har følgende fil:

<tag>
<name>qwerty</name>
<email>qweryt@qwetyt.dk</email>
<text>bla tekst</text>
</tag>

Denne fil gentager sig en masse gange. Det er i sig selv ok. Jeg ved det minder en del om xml, og jeg kan også sagtens bruge dom. Men i det her tilfælde må jeg ikke bruge dom, og skal derfor bruge preg. Mit spørgsmål lyder så, hvad går jeg forkert?

Jeg henter filen over i en variable der hedder $sContent og kører så følgende:
$aTags = preg_split("/<tag>[A-z]<\/tag\>", $sContent);
Den henter fint alt over (ved jeg mangler 0-9), men den ligger det alt sammen i samme element i mit array. Hvad gør jeg forkert`? og gerne en forklaring på hvordan man bruger denne funktion ordenlig, hvis sådan en forklaring findes.

Skal lige siges, jeg kender godt siden:
http://dk.php.net/manual/da/reference.pcre.pattern.syntax.php
Avatar billede drbean Nybegynder
20. maj 2005 - 20:38 #1
Sry... min preg_split() skal da se sådan ud:
$aTags = preg_split("/<tag>[0-9A-z]<\/tag>/", $sContent);
Avatar billede nielle Nybegynder
21. maj 2005 - 12:25 #2
preg_split("/<tag>[0-9a-z]<\/tag>/i", $sContent);

Lille 'a'  i "a-z" og ".../i" for ignore-case.
Avatar billede nielle Nybegynder
21. maj 2005 - 12:28 #3
Eller:

preg_split("/<tag>.*?<\/tag>/", $sContent);

- hvor ?-tegnet angiver at .* skal matche så lidt som overhovedet muligt. Kaldes en "lazy quantifier".
Avatar billede drbean Nybegynder
25. maj 2005 - 12:27 #4
Hmm.... det virker deværre ikke efter hensigten. Men fandt en anden måde at gøre det på. Har valgt at adskille hvert indlæg med et nyt tag, og skille det ad sådan:
$aTags = preg_split("/<new-guest-book-tag>/", $sContent);

Men smid et svar, du skal da have nogen point for at hjælpe mig lidt på vej, og have brugt tid på det.
Avatar billede nielle Nybegynder
25. maj 2005 - 18:06 #5
Ok, men tag du bare de fleste points tilbage igen.
Avatar billede drbean Nybegynder
25. maj 2005 - 22:34 #6
okay
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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