PDA

Bekijk Volledige Versie : [PHP] Eregi



Jan Smeelen
11/06/03, 00:05
Ik heb in een text file (input.txt)met daarin oa :
<tr><td>Naam</td>
<td><!--002-->MIJNNAAM</td><td>A&A</td></tr>
<tr><td>Adres</td><td><!--004-->ADRES</td>

ik lees die in op de volgende manier :

$adres = "input.txt";
$openen = fopen("$adres", "r");
$lezen = fread($openen, 200000);
$begin_naam='<td><!--002-->';
$eind_naam='<\/td><td>';
$data_naam = eregi("$begin_naam(.*)$eind_naam", $lezen, $naam);
echo $naam[1];

helaas krijg ik echter retour :
MIJNNAAM</td><td>A&A</td></tr>
<tr><td>Adres</td><td><!--004-->ADRES</td>

Volgens mij ligt dat aan de eregi()

Ik ben niet sterk in regexp's, wie helpt mij
aan de juiste zodat de retourwaarde van
$naam[1] EIGENNAAM zonder het overige is ? :o)

Bedankt !

Jan Smeelen.

Daniel Tryba
11/06/03, 00:20
Jan Smeelen <smeelen@signet.nl> wrote:

Toemaar, 3 maal gepost.... 1 keer is genoeg :)

> <tr><td>Naam</td>
> <td><!--002-->MIJNNAAM</td><td>A&A</td></tr>
> <tr><td>Adres</td><td><!--004-->ADRES</td>
>
> ik lees die in op de volgende manier :
>
> $adres = "input.txt";
> $openen = fopen("$adres", "r");
> $lezen = fread($openen, 200000);
> $begin_naam='<td><!--002-->';
> $eind_naam='<\/td><td>';
> $data_naam = eregi("$begin_naam(.*)$eind_naam", $lezen, $naam);
> echo $naam[1];
>
> helaas krijg ik echter retour :
> MIJNNAAM</td><td>A&A</td></tr>
> <tr><td>Adres</td><td><!--004-->ADRES</td>
>
> Volgens mij ligt dat aan de eregi()

Het ligt niet aan ereg(i), maar aan het feit dat de regexp "greedy" is.
Enige leesmateriaal hierover is te vinden op
http://nl2.php.net/manual/en/pcre.pattern.syntax.php
http://nl2.php.net/manual/en/pcre.pattern.modifiers.php

Wat je dus wilt is een nongreedy regexp, en dat moet je dan met preg_*
doen: "/$begin_naam(.*?)$eind_naam/"


--

Daniel Tryba

Jan Smeelen
11/06/03, 00:20
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> schreef in
bericht news:bc5l6d$jqo$1@news.tue.nl...
> Jan Smeelen <smeelen@signet.nl> wrote:
>
> Toemaar, 3 maal gepost.... 1 keer is genoeg :)

Sorry,
ik twijfelde aan mijn inbel provider, want zag
de posting niet staan.
Dus opnieuw geprobeerd, en daarna toen ik
mijn posting niet zag verschijnen dus ook maar
weer gepost via google ;)

i.i.g. bedankt voor je reply !

Jan.