Reqular expression?

PHP

2 svar · 495 visningar · startad av drew

Medlem sedan mars 2007845 inlägg
Trådstart#1

Jag har detta.

preg_match_all('|<' . $tag . '>(.*)</' . $tag . '>|', $data, $out);

Det fungerar perfekt. Så länge svaret handlar om en enda rad (inga \n). Men är det 2 eller flera rader så missar den (en eller flera \n).

Jag har suttit en stund och experimenterat med olika nycklar från en lista jag hittade någonstans. Men är inte riktigt säker på var jag ska sätta dom.

Någon som vet hur jag ska få den att ignorera \n?

Medlem sedan nov. 200373 inlägg
#2

Du måste lägga på ett /s efter ditt pattern

<?php
$data = "<p>
1</p>
<p>2</p>
<p>

</p>3";
$pattern = "/<p\b[^>]*>(.*?)<\/p>/s";
preg_match_all($pattern, $data, $out);
var_dump($out);
Medlem sedan mars 2007845 inlägg
#3

Tack. /s hade jag redan hittat. Problemet låg nog i resten.

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)