webForumDet fria alternativet

Hämta data med preg_match() över flera rader

PHP

1 svar · 240 visningar · startad av Cactuz

Medlem sedan okt. 2001670 inlägg
Frågan#1

Jag försöker hämta data från en text och lägga i en variabel med hjälp utav preg_match(). Problemet är att datan som ska hämtas in ligger på flera rader och jag får då ingen träff med (.*).

Exempel:

<tag>En text utan radbrytning</tag>

Det fungerar utmärkt att hämta in det som står i <tag>, men i detta exemplet:

<tag>En
text
med
radbrytningar</tag>

ger ingen träff.

Medlem sedan aug. 20002 975 inlägg
#2

Du måste använda växeln/modifikatorn 's' för att punkt ska läsa över flera rader.

preg_match("/<tag>(.*?)<\\/tag>/s", $text, $match);
478 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
219 ms — deklarationer (db)
123 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
221 ms — ändringar (db)