Avatar billede Slettet bruger
17. december 2004 - 00:55 Der er 2 kommentarer og
1 løsning

Søg efter tekst - og fjern alt før og efter.

Hej,

Så har jeg brug for lidt hjælp... Jeg har følgende kode, som læse en masse fra en tekstfil.

<?
if(!($myFile=fopen("test.txt","r")))
{
echo "error";
exit;
}
while(!feof($myFile))
{
$myLine.=fgets($myFile,255);
}

fclose($myFile);
$start="<div class='oversigt'>";
$end="</td>";
$start_position=strpos($myLine, $start);
$end_position=strpos($myLine, $end)+strlen($end);
$length=$end_position-$start_position;
$myLine=substr($myLine, $start_position, $length);

echo $myLine;

?>

Bla. følgende står i tekstfilen "test.txt" :

<div class='oversigt'>
<div><span class='start'>10:00</span><span class='job'>Opgave 1</span>(Lokal 1)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>
<div class='oversigt'>
<div><span class='start'>11:00</span><span class='job'>Opgave 2</span>(Lokal 2)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>
<div class='oversigt'>
<div><span class='start'>12:00</span><span class='job'>Opgave 3</span>(Lokal 3)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>

Dog vil jeg gerne fjerne noget at teksten ved indlæsning. F.eks. hvis jeg angive "(Lokal 2)", så søger den om noget hedder det ved indlæsning af filen, og hvis der skal så skal alt dette fjernes :

<div class='oversigt'>
<div><span class='start'>11:00</span><span class='job'>Opgave 2</span>(Lokal 2)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>

Så det kun er oplysningerne med Lokal 1 og Lokal 3 som bliver vist.

Håber i forstår mig, og at i kan hjælpe :o)
Avatar billede coderdk Praktikant
17. december 2004 - 04:32 #1
Hvis strukturen altid er sådan, kan du lave noget regex-magi ;)
Du kan nok se systemet i outputtet på denne:

<?php

    $text = "
<div class='oversigt'>
<div><span class='start'>10:00</span><span class='job'>Opgave 1</span>(Lokal 1)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>
<div class='oversigt'>
<div><span class='start'>11:00</span><span class='job'>Opgave 2</span>(Lokal 2)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>
<div class='oversigt'>
<div><span class='start'>12:00</span><span class='job'>Opgave 3</span>(Lokal 3)</div>
<div class='beskrivelse'>Ja og her står så en masse</div>
</div>
</div>
    ";

    if ( preg_match_all( "/<div class='oversigt'>\s*<div>\s*<span class='start'>(.*?)<\/span><span class='job'>(.*?)<\/span>(.*?)<\/div>\s*<div class='beskrivelse'>(.*?)<\/div>\s*<\/div>\s*<\/div>/si", $text, $matches ) )
    {
        unset( $matches[0] );
        array_unique( $matches );
        echo "<pre>"; var_dump( $matches ); echo "</pre>";
    }
    else
    {
        echo "Kunne ikke finde...";
    }

?>
Avatar billede coderdk Praktikant
17. december 2004 - 04:33 #2
btw i stedet for at læse med fopen/fgets kan du læse det hele ind med:

$text = file_get_contents( "test.txt" );
Avatar billede Slettet bruger
17. december 2004 - 18:44 #3
Nu er jeg ved at kigge lidt på det.... det er lige med at få det til at virke hihi. Men jeg må rode lidt mere med det endnu..
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