WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hjälp med regexp (https://www.wn.se/forum/showthread.php?t=1044236)

kallgard 2010-10-11 19:52

Hjälp med regexp
 
Jag har en kod med taggar för bilder och script där src länken är lokal, alltså typ:
src="/img/bild.jpg". Jag vill gå igenom koden med php och lägga till domänen så att den blir: src="http://www.domain.com/img/bild.jpg".

Det är till ett system så jag kan inte ändra manuellt i all kod.

Jag har hittat:
$regex = "-(<img[^>]+src\s*=\s*['\"])(((?!'|\"|http://).)*)(['\"][^>]*>)-i";
$newText = preg_replace($regex, "$1".$url."$2$4", $domain);

Den fixar img taggen om src följer img. Men har man lagt en alt tagg mellan img och src eller om det är en script tagg så funkar inte funktionen.

Alltså hur kan man skriva för att hitta alla src och kolla om de innehåller http:// annars så lägger man till det?

Tacksam för hjälp!

Kretius 2010-10-12 00:38

Vad händer om du byter ut
[^>]
mot
.*
Alltså:
$regex = "-(<img.*src\s.....

Ifall det är fel så skyller jag allt på att whiskyn jag druckit har påverkat regexp-delen av min hjärna. :)

Bjorne 2010-10-12 01:33

Kod:


$pat = "/(<img[^>]*src\s*=\s*[\"\'])(\/.*)([\"\'])/";
$repl = "\\1http://domain.name\\2\\3";
preg_replace($pat, $repl, $html);



Alla tider är GMT +2. Klockan är nu 10:41.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson