Toon posts:

eregi_replace <img * > probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
hoi,

ik ben een dag aan het aanklungelen geweest met eregi_replace maar krijg niet voor elkaar wat ik wil.
Ik heb een LAP text (Niet één korte string) waarin meerdere image-tags (ook href etc) staan. En wil nu per img de src code eruit halen.
Als ik

$text = eregi_replace("<img (.*) >","//1",$text);

gebruik haalt ie de eerste <img weg en de laatste > in de text weg! Maar niet de eerstvolgende gevonden, en dus bijbehorende, > ...
Iemand enig idee? Of enkele links waar ik het wel kan vinden.

thanx!

Verwijderd

Topicstarter
bedankt,
maar daar valt voor deze onderwerpen verrekte weinig informatie te vinden,phpfreakz heeft meer. Maar zelfs met die info lukt het me niet...

  • tomato
  • Registratie: November 1999
  • Niet online
code:
1
'/[img](["\']?)([^"\'>]+)$1[^>]*[/img]/'

Met zoiets als pattern zullen values van de src attributes in $2 zitten.

Dus bijvoorbeeld
PHP:
1
2
3
4
5
<?
$p = '/[img](["\']?)([^"\'>]+)$1[^>]*[/img]/';
preg_match_all($p, $text, $m);
print_r($m[2]);
?>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op woensdag 27 februari 2002 23:25 schreef morrox het volgende:
bedankt,
maar daar valt voor deze onderwerpen verrekte weinig informatie te vinden,phpfreakz heeft meer. Maar zelfs met die info lukt het me niet...
Je moet de (.*) ff lazy evalueren :) .. Dat doe je met (.*?) .. (En probeer phpfreakz zoveel mogelijk te vermijden.. Vooral het stuk over regexp, want de schrijver snapt er eigenlijk zelf niet zo heel veel van)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Ik zou het waarschijnlijk met preg_macth_all doen, alle src's van die images komen dan in een array te staan...

het wordt dan iets als:
PHP:
1
2
3
<?
preg_match_all("/([img]){1}(\")?(.*)?(\")?/",$instring,$matches);
?[/img]

met dan de uitvoer in:
PHP:
1
2
3
<?
$matches[3][$i];
?>

Klopt vast niet helemaal maar lees de uitleg op php.net van die functie even door en je moet een end komen...

Verwijderd

Jah... ik was weer eens te laat, sorry!

Verwijderd

Topicstarter
ok thanx all,
ben er nog niet helemaal uit: geen output :(
maar denk dat het met de preg_match_all moet lukken

srry @Grum_ dacht dat het weer ging over pref_replace & eregi (goed lezen is ook een vak)
Pagina: 1