Christian <christian@discoworld.dk> wrote in news:beeaju$dm8$1
@sunsite.dk:
> I nedenst†ende string ›nsker jeg at inds‘tte den fulde URL til de
> to billeder.
>
> $string="<img scr='best.gif'><img src=best.gif>";
> $URL="
http://www.x.com";
Du vil gerne matche
strengen "src="
efterfulgt af
valgfrit gåseøje
efterfulgt af
filnavn
evt. efterfulgt af
gåseøje (hvis der var et før filnavnet)
Derfor skal dit regulære udtryk sige præcis det :) ... og det gør det
følgende:
"src=('?)([a-z0-9._\-]+)\\1"
Det regulære udtryk gør følgende:
1) Først matches strengen "src="
2) Så _må_ der komme en ' men den er ikke påkrævet
3) Så kommer et filnavn som må bestå af småbogstaver, tal, punktum,
underscore og bindestreg
4) Endelig komme det samme tegn som blev matchet i 2)! (\\1 henviser til
det der blev matchet af udtrykket i første parentes)
Her er hele koden:
<?php
$string="<img src='best.gif'><img src=best.gif>";
print 'Før: '.htmlentities($string).'<br>';
$URL="
http://www.x.com";
$string = preg_replace(
"/src=('?)([a-z0-9._\-]+)\\1/",
"src='$URL/\\2'",
$string
);
print 'Efter: '.htmlentities($string);
print '<hr>';
show_source(__FILE__);
?>
.... og så lige en reference:
http://dk2.php.net/manual/en/pcre.pattern.syntax.php
--
Hyggehej
/Thomas