Gå til innhold

Fjerne tag'er fra $news


Anbefalte innlegg

Drifter en side hvor jeg legger ut nyheter og skal nå utvide med mulighet for å sende ut nyheten som newsletter.

Har tenkt å sende mailen i plain tekst, og ikke HTML, men problemet er at når jeg legger ut nyhetene bruker jeg ofte noen tags (<b>, <u>, o.l).

 

Hvordan kan jeg fjerne alt mellom < og > i $news slik at alle tag'er forsvinner?

 

En annen sak er at jeg ofte bruker <a href> til å linke i nyhetene.

Er det slik at en full URL blir "klikkbar" i ren tekst mailer?

I såfall ønsker jeg å bytte ut linken med full URL... :)

Eks:

<a href="http://www.hardware.no>Trykk her</a>

til

http://www.hardware.no

Lenke til kommentar
Videoannonse
Annonse
strip_tags() fjerner alle html og php tag'er. Ta en kikk på Regexps for å hente ut adressen.

Takk for tipset.. :) Det løste det første problemet.

 

Kan noen si meg hva som er feil med denne:

$news = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is', '\2 (\1)', $news); 

 

Den skal gjøre om <a href="blah.com">welcome to blah</a> til welcome to blah (blah.com), men den gjør ikke noe med <a href>-taggen...

Lenke til kommentar
  • 2 uker senere...

Denne her bruker jeg til å få

[URL=http://hw.no]hardware[/URL]

til å bli <a href="http://hw.no">hardware</a>.

 

preg_replace("#\[url=(.+?)\](.+?)\[/url]#isUe", "url2('\\1', '\\2',false)", $text);

 

Orker ikke teste, men den skal vel være noe sånn som det her da.

preg_replace("#<a href=\"(.+?)\">(.+?)\<\/a>#isUe", "url2('\\1', '\\2',false)", $text);

 

Blir det feil, så kan du titte litt på den første koden, og se om du finner ut noe :)

Endret av LoS
Lenke til kommentar

Takk for kjapp respons :)

 

$news = "[URL=http://hw.no]hardware[/URL]";
$news = preg_replace("#\[url=(.+?)\](.+?)\[/url]#isUe", "url2('\\1', '\\2',false)", $news);

 

Gir

Fatal error: Call to undefined function: url2() in /noe/noe/noe/noe/newsletter.php(27) : regexp code on line 1

Lenke til kommentar

tehe, legg til denn funksjonen og da.

function url2($tekst, $tekst2, $format){
$tekst = stripslashes($tekst);
 if ($format == true) {
 }
if (preg_match("/http:\/\//i", $tekst)) {
 return "<a href=\"$tekst\">$tekst2</a>";
} else {
 return "<a href=\"http://$tekst\">$tekst2</a>";
}

}

 

edit: veit ikke helt hva jeg har drevet på i scriptet her, men det funker ihvertfall :p

Endret av LoS
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...