Avatar billede horizon Nybegynder
05. maj 2010 - 21:18 Der er 2 kommentarer og
1 løsning

søg/erstat html tags med bestemt attribut i php med regexp

Jeg har prøvet at lave en preg_replace() der skal søge efter tags der har en href eller src der indeholder stien $path og så fjerne selve tagget, men beholde indholdet i tagget så f.eks.
<a href="link/til/fil.txt">her er et link</a> bliver til her er et link (sorry, link is disabled).

Koden er:
$content = preg_replace("/<(.*?)(.*?)(href|src)=\"".$path."\"(.*?)>(.*?)<\/\\1>/", "<em>$5</em> <strong>(sorry, link has been disabled)</strong>", $content);

Det virker også delvist, men hvis jeg nu f.eks. prøver med "<div>her er noget tekst <a href="link/til/til.txt">link til fil</a></div>", så spytter den "link til fil (sorry, blah...)" ud som det eneste hvor jeg jo helst så den spyttede "<div>her er noget tekst link til fil (sorry, blah...)</div>"
Avatar billede tjp Mester
07. maj 2010 - 11:51 #1
Måske sådan her:

$content = preg_replace("/<a( +)(href|src)=\"".$path."\"(.*?)>(.*?)<\/a>/", "<em>$4</em> <strong>(sorry, link has been disabled)</strong>", $content);

Ikke testet i PHP.. :-)
Avatar billede horizon Nybegynder
08. maj 2010 - 10:25 #2
Ja, fik arbejdet mig frem til nogenlunde det samme.

preg_replace("/<a(.*?) href=\"".$path."\"(.*?)>(.*?)<\/a>/", "<em>$5</em> <strong>(sorry, link has been disabled)</strong>", $content);

Smid et svar :-D
Avatar billede tjp Mester
08. maj 2010 - 12:02 #3
Here U R.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester