Du måste använda modifieraren s för att . (punkt) ska matcha nyradstecken. Testa alltså med
$regex = '/<div id="innehall">(.+?)<br><\/div>/s';
3 svar · 502 visningar · startad av andyoumaydie
Hejsan.
Har stött på patrull när jag vill hämta data från en sida jag läser in.
Sidan ser ut ungefär enligt nedanstående. Och den har jag ingen kontroll över.
<div id="innehall">
<span class=lite>blablabla</span>
<span class=lite>blablabla</span>
<span class=lite>blablabla</span>
<br></div>
<div id="innehall">
<span class=lite>blablabla</span>
<span class=lite>blablabla</span>
<span class=lite>blablabla</span>
<br></div> etc...
Nu vill jag ha innehållet för varje div uppdelat lite snyggt i en array, men när jag kör följande så vill det sig inte alls, jag får inte ut nån data.
$data = file_get_contents('http://www.sidan.se/');
$regex = '/<div id="innehall">(.+?)<br><\/div>/';
preg_match_all($regex,$data,$match);
var_dump($match);
Byter jag däremot ut
$regex = '/<div id="innehall">(.+?)<br><\/div>/';
mot
$regex = '/<span class=lite>(.+?)<\/span>/';
så får jag data in i min array.
Vad gör jag för fel?
Du måste använda modifieraren s för att . (punkt) ska matcha nyradstecken. Testa alltså med
$regex = '/<div id="innehall">(.+?)<br><\/div>/s';
Tusen tack för det. :)
Regexp är inte heller en av mina starka sidor som synes. ;)
Ny fråga flyttad hit: http://www.webforum.nu/showthread.php?t=184000