login  Naam:   Wachtwoord: 
Registreer je!
 Forum

url op een forum

Offline webstab - 31/01/2005 19:57 (laatste wijziging 31/01/2005 19:57)
Avatar van webstabPHP ver gevorderde Ik heb zitten zoeken en vanalles geprobeerd,maar ik kom er maar niet uit.
Ik wil dus (zoals hier en op de phpbbforums) wanneer iemand een bericht typt dat alles wat op een internetadres lijkt een hyperlink krijgt.
Bv
Dit wordt getypt
Citaat:
Hoi,ooit al eens http://www.sitemasters.be bezocht?

Of
Citaat:
Hoi,ooit al eens www.sitemasters.be bezocht?

En dat zou moeten worden
Citaat:
Hoi,ooit al eens <a href="http://www.sitemasters.be" target="_blank">http://www.sitemasters.be</a> bezocht?

of
Citaat:
Hoi,ooit al eens <a href="http://www.sitemasters.be" target="_blank">www.sitemasters.be</a> bezocht?


Ik heb al geprobeerd met Reguliere Expressies . maar het lukt niet.

(het bericht bevindt zich onder $bericht)

4 antwoorden

Gesponsorde links
Offline vinTage - 31/01/2005 21:54
Avatar van vinTage Nieuw lid Vergeef me als ik weer iets stoms zeg als mega php nub, maar ik had dat ook in een add nieuwsscriptje, toen heb ik htmlspecialchars eruit gehaald, en toen deed die het vanzelf.

Offline webstab - 01/02/2005 07:38
Avatar van webstab PHP ver gevorderde bij mij dus niet.
Bestaat daar niert zo een simpel scriptje voor?(maar ik vind het niet)
Offline Addow - 01/02/2005 10:50
Avatar van Addow Gouden medaille

PHP beginner
Aha, dit is iets waarmee ik m'n reguliere expressiekennis van 4 dagen eens mee kan testen... een probeersel:

  1. <?
  2.  
  3. if(!preg_match("/(\$@{})+/",$text)) {
  4. if(preg_match("/http:\/\/(.*)([[:space:]*])/",$text)) {
  5. $text = preg_replace("/http:\/\/([a-zA-Z0-9\._-]*[\/\.\?\&;_\\=\-a-zA-Z0-9]*)/si","<a href=\"http://\\1\" target=\"_blank\">http://\\1</a>",$text);
  6. }
  7. elseif(preg_match("/www([a-zA-Z0-9\/\.\?\&\;\_\\\=\-]*)/",$text)) {
  8. $text = preg_replace("/www\.([\/\.\?\&;_\\=\-a-zA-Z0-9]*)([[:space:]]?)/si","<a href=\"http://www.\\1\" target=\"_blank\">http://www.\\1</a>",$text);
  9. }
  10. }
  11.  
  12.  
  13. ?>


Invoer is dus een $txt string, en uitvoer is diezelfde string
Offline ErwinD - 01/02/2005 15:40 (laatste wijziging 01/02/2005 15:42)
Avatar van ErwinD Nieuw lid
  1. <?
  2. function url_my_string($text)
  3. {
  4. $text = preg_replace('/([\w]+?:\/\/[^ \"\n\r\t<]*)/i', '<a href="\1" target="_blank">\1</a>', $text);
  5. $text = preg_replace('/((www|ftp)\.[^ \"\t\n\r<]*)/i', '<a href="http://\1" target="_blank">\1</a>', $text);
  6. $text = preg_replace('/([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)/i', '<a href="mailto:\1@\2">\1@\2</a>', $text);
  7.  
  8. return $text;
  9. }
  10. ?>

Gewoon elk bericht door deze functie halen:
<?
$bericht = url_my_string($bericht);
?>
Werkt ook voor ftp adressen en emailadressen 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.257s