Avatar billede h-w.dk Nybegynder
19. august 2003 - 18:26 Der er 11 kommentarer og
1 løsning

str_replace hjælp!

Jeg har et array, som indeholder en nyhed. Jeg vil have sådan at den fjerne billedet fra nyheden, hvis ellers der er et.

Altså noget i stil med:
$nyhed = str_replace("billedelink", "", $nyhed);

Problemet er bare at jeg ikke kan få den til at fjerne billedet, uden at jeg skriver det nøjagtige navn på linket, altså f.eks. <img src="hej.jpg">... Hvad skal jeg gøre??
Avatar billede fangel Nybegynder
19. august 2003 - 18:36 #1
du kan gøre flere ting:

1) fjerne alle tags ved hjælp af strip_tags (du kan undlade ngole tags, læs manualen for dette)

2) uskadeligøre alle tags ved hjælp af htmlenteties (usikker på stavemåde)

3) lave en reg.exp replace, disse er jeg ikke så stærke i, men det er noget i stil med:

ereg_replace("<img [a-zA-Z0-9\.\, }+>", "",$nyhed)

:OBS: ikke testet, og reg.exp. er ikke min stærke side!

Morten
Avatar billede h-w.dk Nybegynder
19. august 2003 - 18:38 #2
hmm, siger mig ikke helt vildt meget, er der andre der evt. kan komme med en smule kode??
Avatar billede Slettet bruger
19. august 2003 - 18:43 #3
<?
$nyhed = "noget tekst her og så<img src='foo.gif' alt='' width='3'> og noget mere tekst";

$nyhed = preg_replace("|<img[^>]?>|i", "", $nyhed);

echo $nyhed;
?>

Noget i den dur, hvis $nyhed er en streng. Men hvad mener du med at $nyhed er et array?
Avatar billede fangel Nybegynder
19. august 2003 - 18:47 #4
mercur8 => hvad er forskellen på preg_replace og ereg_replace (ereg bruger perl regexp, ik'?)

og burde det ikke være

[^>]+

Morten
Avatar billede h-w.dk Nybegynder
19. august 2003 - 18:48 #5
$nyhed, min variabel eller hvad det nu hedder, kommer fra min mysql db. Den kan hentes ved f.eks. $nyhed[0], så får jeg den første række osv.

Den stump kode du smed virker ikke rigtigt!!
Avatar billede h-w.dk Nybegynder
19. august 2003 - 18:49 #6
wee, nu virker det....dea_pg...det var lige det der skulle til!!
Avatar billede fangel Nybegynder
19. august 2003 - 18:50 #7
? = måske et, måske ikke
+ = et eller flere

Morten
Avatar billede Slettet bruger
19. august 2003 - 18:52 #8
dea_pg: Mht. til forskellen. Ja preg bruger bruger Perls implementering og syntax. Manualen skriver at denne ofte er hurtigere end den alm. reg.

Og jow det burde være * eller + istedet for ?

Altså:

$nyhed = preg_replace("|<img[^>]*>|i", "", $nyhed);
Avatar billede h-w.dk Nybegynder
19. august 2003 - 18:55 #9
Nu vi er ved det, hvad er foskellen på + og * ???
Avatar billede Slettet bruger
19. august 2003 - 18:56 #10
* er 0 eller flere
+ er 1 eller flere
Avatar billede Slettet bruger
19. august 2003 - 18:56 #11
Med * bliver <img> altå fjernet. Med + bliver <img> ikke fjernet.
Avatar billede h-w.dk Nybegynder
19. august 2003 - 18:58 #12
tak for det....
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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