Premiär! Fyndchans i SweClockers Månadens Drop

PHP - hitta tom rad i <pre> text

Permalänk
Medlem

PHP - hitta tom rad i <pre> text

Har följande text att leta i.

<pre class="linkTextNormal">Last updated Wed Feb 18 19:15:06 UTC 2015

ÖVERSIKTLIG PROGNOS FÖR OMRÅDE A
GÄLLANDE DEN 19 FEBRUARI 2015

Väderöversikt
Över södra Sverige råder en sydvästlig luftström. I luftströmmen
förekommer utbredda stratus, utbredda stratocumulus moln, dis eller
dimma och regn eller duggregn.

NORRA DELEN

Sikt/Väder/Moln
Område 1c: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden
sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas över 2000ft, lokalt under 500ft.
Område 2d,4e: I början av perioden sikt över 8km, lokalt under 1500m
i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten
av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km.
Molnbas 500-1000ft, lokalt 1000-1500ft.
Område 4c: I början av perioden sikt över 8km, lokalt under 1500m i
dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av
perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft,
lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas
över 2000ft, lokalt 1000-1500ft.
Område 3a,3b: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden
sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 5-8km i regn
och duggregn. Molnbas över 2000ft, lokalt 1000-1500ft.
Område 2a,2b,2c,4a: I början av perioden sikt över 8km, lokalt under
1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I
mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km
regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft,
lokalt under 500ft.
Område 4b: I början av perioden sikt över 8km, lokalt under 1500m i
dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av
perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.
Område 1a,1b: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden
sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km regn och duggregn,
lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft.
Område 4d: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden
sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.

Vind vid marken
Område 2a,2b,2c,2d,4a,4b,4c,4d,4e: SV/15 knop.
Område 1a,1b,1c,3a,3b: SV/20 knop.

SYDÖSTRA DELEN

Sikt/Väder/Moln
Område 2a,2b,2c,2d: I början av perioden sikt över 8km, lokalt under
1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I
mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km.
Molnbas 500-1000ft, lokalt 1000-1500ft.
Område 3a,3b: I början av perioden sikt över 8km, lokalt under 1500m
i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten
av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1000-1500ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.
Område 1a,1b,1c,3c: I början av perioden sikt över 8km, lokalt
3000-5000m i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. I mitten av
perioden sikt över 8km, lokalt 5-8km i dis. Molnbas över 2000ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.

Vind vid marken
I hela området: V/10 knop.

</pre>

Dold text

Texten ser inte alltid lika ut därav problemet.

Men texten är uppdelad i Norra och Sydöstra delen.
Var del är uppdelad i två sektioner, sikt/väder/moln och vind vid marken.

Jag vill kunna plocka ut Norra eller Sydöstra delen och då få ut sikt/väder/moln och vind vid marken men sen stanna vid tomma raden under.

Jag har kommit en bit på vägen med följande funktion:

//$Oversikt = texten i sin helhet //$LHP_GEO_OMR2 = "NORRA DELEN" eller "SYDÖSTRA DELEN" $Oversikt = get_Prel_prognos($Oversikt, $LHP_GEO_OMR2, "Vind vid marken", "0"); function get_Prel_prognos($str, $needle_begin, $needle_end, $offset) { $begin = strpos($str, $needle_begin)+$offset; $end = strpos($str, $needle_end, $begin); $end = strpos($str, "\n", $end+strlen($needle_end)); $str = substr($str, $begin , $end - $begin); return trim($str); }

ger följande resultat:

Citat:

SYDÖSTRA DELEN

Sikt/Väder/Moln
Område 2a,2b,2c,2d: I början av perioden sikt över 8km, lokalt under
1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I
mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km.
Molnbas 500-1000ft, lokalt 1000-1500ft.
Område 3a,3b: I början av perioden sikt över 8km, lokalt under 1500m
i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten
av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1000-1500ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.
Område 1a,1b,1c,3c: I början av perioden sikt över 8km, lokalt
3000-5000m i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. I mitten av
perioden sikt över 8km, lokalt 5-8km i dis. Molnbas över 2000ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.

Vind vid marken

Så den hittar Vind vid marken men vill inte leta vidare efter "rätt" radbryt.
Hur hittar jag det?

Permalänk
Medlem

Eller kan jag ädnra texten från att vara <pre> text till "vanlig text" med <br> i slutet på var rad?

Permalänk
Medlem
Skrivet av Agonotheta:

Har följande text att leta i.

<pre class="linkTextNormal">Last updated Wed Feb 18 19:15:06 UTC 2015

ÖVERSIKTLIG PROGNOS FÖR OMRÅDE A
GÄLLANDE DEN 19 FEBRUARI 2015

Väderöversikt
Över södra Sverige råder en sydvästlig luftström. I luftströmmen
förekommer utbredda stratus, utbredda stratocumulus moln, dis eller
dimma och regn eller duggregn.

NORRA DELEN

Sikt/Väder/Moln
Område 1c: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden
sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas över 2000ft, lokalt under 500ft.
Område 2d,4e: I början av perioden sikt över 8km, lokalt under 1500m
i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten
av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km.
Molnbas 500-1000ft, lokalt 1000-1500ft.
Område 4c: I början av perioden sikt över 8km, lokalt under 1500m i
dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av
perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft,
lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas
över 2000ft, lokalt 1000-1500ft.
Område 3a,3b: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden
sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 5-8km i regn
och duggregn. Molnbas över 2000ft, lokalt 1000-1500ft.
Område 2a,2b,2c,4a: I början av perioden sikt över 8km, lokalt under
1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I
mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km
regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft,
lokalt under 500ft.
Område 4b: I början av perioden sikt över 8km, lokalt under 1500m i
dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av
perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.
Område 1a,1b: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden
sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km regn och duggregn,
lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft.
Område 4d: I början av perioden sikt över 8km, lokalt 3000-5000m i
dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden
sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt
500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.

Vind vid marken
Område 2a,2b,2c,2d,4a,4b,4c,4d,4e: SV/15 knop.
Område 1a,1b,1c,3a,3b: SV/20 knop.

SYDÖSTRA DELEN

Sikt/Väder/Moln
Område 2a,2b,2c,2d: I början av perioden sikt över 8km, lokalt under
1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I
mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas
500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km.
Molnbas 500-1000ft, lokalt 1000-1500ft.
Område 3a,3b: I början av perioden sikt över 8km, lokalt under 1500m
i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten
av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1000-1500ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.
Område 1a,1b,1c,3c: I början av perioden sikt över 8km, lokalt
3000-5000m i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. I mitten av
perioden sikt över 8km, lokalt 5-8km i dis. Molnbas över 2000ft,
lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över
2000ft, lokalt 1000-1500ft.

Vind vid marken
I hela området: V/10 knop.

</pre>

Dold text

Så den hittar Vind vid marken men vill inte leta vidare efter "rätt" radbryt.
Hur hittar jag det?

Detta fungerar för mig. Lagt till lite utf8_decode och nl2br som du kanske inte vill ha.

<?php $text = '<pre class="linkTextNormal">Last updated Wed Feb 18 19:15:06 UTC 2015 ÖVERSIKTLIG PROGNOS FÖR OMRÅDE A GÄLLANDE DEN 19 FEBRUARI 2015 Väderöversikt Över södra Sverige råder en sydvästlig luftström. I luftströmmen förekommer utbredda stratus, utbredda stratocumulus moln, dis eller dimma och regn eller duggregn. NORRA DELEN Sikt/Väder/Moln Område 1c: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas över 2000ft, lokalt under 500ft. Område 2d,4e: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas 500-1000ft, lokalt 1000-1500ft. Område 4c: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 3a,3b: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 5-8km i regn och duggregn. Molnbas över 2000ft, lokalt 1000-1500ft. Område 2a,2b,2c,4a: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Område 4b: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 1a,1b: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Område 4d: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Vind vid marken Område 2a,2b,2c,2d,4a,4b,4c,4d,4e: SV/15 knop. Område 1a,1b,1c,3a,3b: SV/20 knop. SYDÖSTRA DELEN Sikt/Väder/Moln Område 2a,2b,2c,2d: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas 500-1000ft, lokalt 1000-1500ft. Område 3a,3b: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 1a,1b,1c,3c: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas över 2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Vind vid marken I hela området: V/10 knop. </pre>'; echo "NORRA DELEN"; echo nl2br(utf8_decode(scrape_between($text, 'NORRA DELEN', 'SYDÖSTRA DELEN'))); echo "<br><br>"; echo utf8_decode("SYDÖSTRA DELEN"); echo nl2br(utf8_decode(scrape_between($text, 'SYDÖSTRA DELEN', '</pre>'))); function scrape_between($data, $start, $end){ $data = stristr($data, $start); // Stripping all data from before $start $data = substr($data, strlen($start)); // Stripping $start $stop = stripos($data, $end); // Getting the position of the $end of the data to scrape $data = substr($data, 0, $stop); // Stripping all data from after and including the $end of the data to scrape return $data; // Returning the scraped data from the function } ?>

Permalänk
Medlem

Jag kanske var lite otydlig i min beskrivning.
Det är inte alltid texten ser likadan ut.
Jag vill att den ska kunna hanter även om sydöstra står över norra. Eller om det finns en västra delen i mitten.

Så det jag behöver är något som verkligen ser när vind vid marken är slut, och inte när eventuellt nästa börjar eftersom "nästa" behöver inte finnas eller kan vara något man inte väntar sig.

Därav min tanke att hitta tom rad om det går på något vis.

Men tack så mycket för försöket

EDIT: nu såg jag nl2br(). Sorry missade den funktionen och visste inte vad det var
Men om man använder den så borde man kunna söka på "<br><br>" eftersom det endast kommer hända efter vind vid marken?
Eller tänker jag fel nu/har jag dålig koll på nl2br?

Permalänk
Medlem
Skrivet av Agonotheta:

Jag kanske var lite otydlig i min beskrivning.
Det är inte alltid texten ser likadan ut.
Jag vill att den ska kunna hanter även om sydöstra står över norra. Eller om det finns en västra delen i mitten.

Så det jag behöver är något som verkligen ser när vind vid marken är slut, och inte när eventuellt nästa börjar eftersom "nästa" behöver inte finnas eller kan vara något man inte väntar sig.

Därav min tanke att hitta tom rad om det går på något vis.

Men tack så mycket för försöket

EDIT: nu såg jag nl2br(). Sorry missade den funktionen och visste inte vad det var
Men om man använder den så borde man kunna söka på "<br><br>" eftersom det endast kommer hända efter vind vid marken?
Eller tänker jag fel nu/har jag dålig koll på nl2br?

Okej förstår. Har ingen bra lösning på det då. Du får försöka hitta något du kan leta efter.

nl2br lär ge dig fler <br> än bara efter där med vinden så tror inte det är en lösning.

Var är det du hämtar datan ifrån egentligen? Finns det inget api eller liknande du kan använda föra att få ut det på ett bra sätt?

Permalänk

Jag skulle göra följande (pseudokod):

$keywords = array("norra delen","södra delen","västra delen","östra delen");
$data = array();
foreach($keywords as $key){
// Hitta position av keyword ($start)

// Hitta position av antingen något annat keyword (sök från position $start och ta första) eller slut-pre ($end)

// lagra texten mellan $start och $end i $data[$keyword]

}

Glöm inte att göra hela texten till lowercase när du söker, kan ju inte vara garanterat att keywordsen alltid är uppercase.

Permalänk
Medlem
Skrivet av agentq15:

Okej förstår. Har ingen bra lösning på det då. Du får försöka hitta något du kan leta efter.

nl2br lär ge dig fler <br> än bara efter där med vinden så tror inte det är en lösning.

Var är det du hämtar datan ifrån egentligen? Finns det inget api eller liknande du kan använda föra att få ut det på ett bra sätt?

Jo nl2br kommer väl ge ett br efter var rad?
Eller ger den mer än ett br per rad?
Oavsett så kanske det är lättare att leta i än en pre text.

Jag ska testa det ikväll om jag får tid till det (troligtvis inte).

Texten kommer från luftfarftsverket hemsida och är flygväder för en specifik region.
Jag vill då kunna filtrera ut det jag behöver och presentera det lite bättre.
Ganska säker på att det inte finns något API.

Permalänk
Medlem
Skrivet av Full Strike:

Jag skulle göra följande (pseudokod):

$keywords = array("norra delen","södra delen","västra delen","östra delen");
$data = array();
foreach($keywords as $key){
// Hitta position av keyword ($start)

// Hitta position av antingen något annat keyword (sök från position $start och ta första) eller slut-pre ($end)

// lagra texten mellan $start och $end i $data[$keyword]

}

Glöm inte att göra hela texten till lowercase när du söker, kan ju inte vara garanterat att keywordsen alltid är uppercase.

Inte säker på vad du menar men jag tycker det ser ut att vara det jag försökt ungefär.
Men problemet är att hitta slutet på en "del"

Permalänk
Skrivet av Agonotheta:

Inte säker på vad du menar men jag tycker det ser ut att vara det jag försökt ungefär.
Men problemet är att hitta slutet på en "del"

Ok, här är en annan lösning som kanske är lite smidigare. Glöm inte att lägga till alla delimiters du vill ha, nu är det bara sydöstra, norra och västra:

$text = '<pre class="linkTextNormal">Last updated Wed Feb 18 19:15:06 UTC 2015 ÖVERSIKTLIG PROGNOS FÖR OMRÅDE A GÄLLANDE DEN 19 FEBRUARI 2015 Väderöversikt Över södra Sverige råder en sydvästlig luftström. I luftströmmen förekommer utbredda stratus, utbredda stratocumulus moln, dis eller dimma och regn eller duggregn. NORRA DELEN Sikt/Väder/Moln Område 1c: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas över 2000ft, lokalt under 500ft. Område 2d,4e: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas 500-1000ft, lokalt 1000-1500ft. Område 4c: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 3a,3b: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 5-8km i regn och duggregn. Molnbas över 2000ft, lokalt 1000-1500ft. Område 2a,2b,2c,4a: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Område 4b: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 1a,1b: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Område 4d: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Vind vid marken Område 2a,2b,2c,2d,4a,4b,4c,4d,4e: SV/15 knop. Område 1a,1b,1c,3a,3b: SV/20 knop. SYDÖSTRA DELEN Sikt/Väder/Moln Område 2a,2b,2c,2d: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas 500-1000ft, lokalt 1000-1500ft. Område 3a,3b: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 1a,1b,1c,3c: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas över 2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Vind vid marken I hela området: V/10 knop. VÄSTRA DELEN Hej det här är västra delen sdfds adssfd </pre>'; function multiexplode ($delimiters,$string) { foreach($delimiters as $d){ $string = str_replace($d,"|S|$d|E|",$string); } $launch = explode("|S|", $string); return $launch; } $delimiters = array(utf8_decode("SYDÖSTRA DELEN"),utf8_decode("NORRA DELEN"),utf8_decode("VÄSTRA DELEN")); $arr = multiexplode($delimiters, utf8_decode(strip_tags($text))); $parts = array(); foreach($arr as $part){ $delimiter = trim(substr($part, 0, strpos($part, "|E|"))); if(in_array($delimiter,$delimiters)){ $parts[$delimiter] = str_replace(array_merge($delimiters,array("|E|")),"", $part); } } print_r($parts);

Permalänk
Medlem

Ska kolla på dn här lösningen.
Har lite svårt att hänga med i koden (nybörjare) så jag får se vad den spottar ut för resultat när jag testar den.

Tack för hjälpen.

Permalänk
Medlem

[QUOTE=Full Strike;15236494]Ok, här är en annan lösning som kanske är lite smidigare. Glöm inte att lägga till alla delimiters du vill ha, nu är det bara sydöstra, norra och västra:

$text = '<pre class="linkTextNormal">Last updated Wed Feb 18 19:15:06 UTC 2015 ÖVERSIKTLIG PROGNOS FÖR OMRÅDE A GÄLLANDE DEN 19 FEBRUARI 2015 Väderöversikt Över södra Sverige råder en sydvästlig luftström. I luftströmmen förekommer utbredda stratus, utbredda stratocumulus moln, dis eller dimma och regn eller duggregn. NORRA DELEN Sikt/Väder/Moln Område 1c: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas över 2000ft, lokalt under 500ft. Område 2d,4e: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas 500-1000ft, lokalt 1000-1500ft. Område 4c: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 3a,3b: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km, lokalt 5-8km i regn och duggregn. Molnbas över 2000ft, lokalt 1000-1500ft. Område 2a,2b,2c,4a: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Område 4b: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 1a,1b: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km regn och duggregn, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Område 4d: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 500-1000ft, lokalt 1500-2000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1500-2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Vind vid marken Område 2a,2b,2c,2d,4a,4b,4c,4d,4e: SV/15 knop. Område 1a,1b,1c,3a,3b: SV/20 knop. SYDÖSTRA DELEN Sikt/Väder/Moln Område 2a,2b,2c,2d: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 1500-3000m i dis. Molnbas 500-1000ft, lokalt under 500ft. Mot slutet av perioden sikt över 8km. Molnbas 500-1000ft, lokalt 1000-1500ft. Område 3a,3b: I början av perioden sikt över 8km, lokalt under 1500m i dis eller dimma. Molnbas 500-1000ft, lokalt under 500ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Område 1a,1b,1c,3c: I början av perioden sikt över 8km, lokalt 3000-5000m i dis. Molnbas 1000-1500ft, lokalt 500-1000ft. I mitten av perioden sikt över 8km, lokalt 5-8km i dis. Molnbas över 2000ft, lokalt 500-1000ft. Mot slutet av perioden sikt över 8km. Molnbas över 2000ft, lokalt 1000-1500ft. Vind vid marken I hela området: V/10 knop. VÄSTRA DELEN Hej det här är västra delen sdfds adssfd </pre>'; function multiexplode ($delimiters,$string) { foreach($delimiters as $d){ $string = str_replace($d,"|S|$d|E|",$string); } $launch = explode("|S|", $string); return $launch; } $delimiters = array(utf8_decode("SYDÖSTRA DELEN"),utf8_decode("NORRA DELEN"),utf8_decode("VÄSTRA DELEN")); $arr = multiexplode($delimiters, utf8_decode(strip_tags($text))); $parts = array(); foreach($arr as $part){ $delimiter = trim(substr($part, 0, strpos($part, "|E|"))); if(in_array($delimiter,$delimiters)){ $parts[$delimiter] = str_replace(array_merge($delimiters,array("|E|")),"", $part); } } print_r($parts);

[/QUOTE]

Fick fem minuter över igår och han testköra koden.
Det ser ut att fungera, men jag lyckades inte skriva ut en del i taget.
Dumpa ut allt i arrayn fungerade men inte bara ex sydvästra delen.

Echo $parts(NORRA DELEN) // Fungerade
Exho $parts(SYDVÄSTRA DELEN) // Fungerade inte

Kan vara så att det var "" också innanför paranteserna, minns inte. Skriver från mobilen nu.

Permalänk
Skrivet av Agonotheta:

Fick fem minuter över igår och han testköra koden.
Det ser ut att fungera, men jag lyckades inte skriva ut en del i taget.
Dumpa ut allt i arrayn fungerade men inte bara ex sydvästra delen.

Echo $parts(NORRA DELEN) // Fungerade
Exho $parts(SYDVÄSTRA DELEN) // Fungerade inte

Kan vara så att det var "" också innanför paranteserna, minns inte. Skriver från mobilen nu.

Du måste skriva:

echo $parts[utf8_decode("SYDÖSTRA DELEN")];

Anledningen är att åäö är tecken som måste avkodas, man bör undvika specialtecken överlag i kod för att slippa krångel.

Permalänk
Medlem

Ahaa...
Ska testa det!

Tack för hjälpen!

Permalänk
Medlem

Finns det någon möjlighet att behålla åäö i texten?

Har försökt hitta nån lösning på det själv men hittar inget.

Ser ut att vara denna raden som gör "skadan":

$arr = multiexplode($delimiters, utf8_decode(strip_tags($text)));

Om man tar bort utf8_decode() så behåller den åäö i texten men då hittar inte funktionen de olika delarna utan lägger allt i Norra delen.
Troligtvis för att det inte är utf8 och därför kan inte hantera åäö i "Sydöstra"- eller "Västra delen".

Försökte lägga till en utf8_encode men det fungerade inte.

Permalänk
Medlem

Jag lyckades hitta en lösning ändå.
Kom på att problemet är ju just ÅÄÖ så varför inte ändra på problemet istället för att ändra på lösningen

function multiexplode ($delimiters,$string) { foreach($delimiters as $d){ $string = str_replace($d,"|S|$d|E|",$string); } $launch = explode("|S|", $string); return $launch; } $delimiters = array(utf8_decode("SYDÖSTRA DELEN"),utf8_decode("NORRA DELEN"),utf8_decode("VÄSTRA DELEN")); $text = str_replace("å", "å", $text); $text = str_replace("ä", "ä", $text); $text = str_replace("ö", "ö", $text); $text = str_replace("Å", "Å", $text); $text = str_replace("Ä", "Ä", $text); $text = str_replace("Ö", "Ö", $text); $arr = multiexplode($delimiters, utf8_decode(strip_tags($text))); $parts = array(); foreach($arr as $part){ $delimiter = trim(substr($part, 0, strpos($part, "|E|"))); if(in_array($delimiter,$delimiters)){ $parts[$delimiter] = str_replace(array_merge($delimiters,array("|E|")),"", $part); } }