[php] met regexes regels fetchen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Howdi,

ik wil met een aantal regexes uit een stuk tekst allerlei regels fetchen op de volgende manier.

Ik heb een stuk tekst dat er altijd op deze manier uit ziet:

Naam: testnaam
Plaats: testplaats
etc...

Nu wil ik dus regexes hebben die de naam, plaats, etc in variabelen zetten zodat ik daar verder mee kan werken.
Ik heb de volgende regexes gemaakt:

PHP:
1
2
3
4
<?
eregi("naam: ([^\\\[]*)([ \n\r\t])",$bericht,$naam);
eregi("plaats: ([^\\\[]*)([ \n\r\t])",$bericht,$plaats);
?>


Het probleem is nu dat in de variabele $naam alles komt te zetten vanaf Naam: , dus ook de plaats.
In de variabele Plaats: komt wel het juiste te zitten.
Hoe los ik op dat hij tot aan de nieuwe regel gaat, en niet verder?

Acties:
  • 0 Henk 'm!

Verwijderd

Je kan die file regel voor regel uitlezen met fgets. Bijvoorbeeld zoiets:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (!($fd = fopen ($url, "r"))){
    echo "Kan geen verbinding maken.";
} else {
    while (!feof ($fd)) {
        $buffer = fgets($fd, 4096); //Dit is dus 1 regel
        if (eregi('<td>([0-9,]*)</td>', $buffer, $stats)) { 
            //doe iets
        } 
        echo $buffer;
    }
}
?>

[ Voor 13% gewijzigd door Verwijderd op 28-01-2003 11:49 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Als je regel voor regel een bestand wilt lezen, kun je beter file() gebruiken.

Het probeem is ook op te lossen door de juiste modifiers te gebruiken waarschijnlijk. Ik denk dat de preg-functies dan iets meer geschikt zijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Regel voor regel zou wel 's goed kunnen werken ja, dan weet ik tenminste 100% zeker dat hij de vorige regel er niet bij in gooit.
Verwijderd schreef op 28 januari 2003 @ 11:52:
Het probeem is ook op te lossen door de juiste modifiers te gebruiken waarschijnlijk. Ik denk dat de preg-functies dan iets meer geschikt zijn.
Met preg_match is het me ook nog niet echt gelukt, maar ik ben aan het proberen...thanks iig :)