[PHP] Tekst filteren naar HTML Hyperlinks

Pagina: 1
Acties:

  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 09:35
Ik heb een tijdje gezocht naar een goede converter. Hetgene wat deze converter moet doen is:
  1. Het krijgt een hoop tekst als input
  2. \n en \r en al die zooi converten naar goede HTML-code (dus <br> enzo)
  3. En dan het belangrijkste waar ik niet uitkom: Alle hyperlinks converten naar HTML
  4. (eventueel het controleren of de hyperlink klopt, door middel van controleren met IP enzo, maar daar kom ik zelf nog wel uit..)
Al voorbeeld stop ik er deze tekst in:
Misschien dat we ook keer een team uitje kunnen doen.
http://www.kartingtilburg.nl/ (zie alle Activiteiten).
en daarna lekker zuipe en film kijken bij iemand.
gr Suffe


en dan wil ik eruit krijgen:
Misschien dat we ook keer een team uitje kunnen doen.
<a href="http://www.kartingtilburg.nl/">http://www.kartingtilburg.nl/</a> (zie alle Activiteiten).
en daarna lekker zuipe en film kijken bij iemand.
gr Suffe


Aaah,, het gebeurt bij deze topicstart dus ook.. Ik typ http://www.kartingtilburg.nl en dan maakt hij er automatisch een hyperlink van.. Paas me die converter >:)

  • r0b
  • Registratie: December 2002
  • Laatst online: 28-11 16:50

r0b

1. Ok
2. nl2br :?
3. str_replace?

  • Rvanlaak
  • Registratie: Juni 2005
  • Laatst online: 09:35
Ik weet het.. maar het sluiten van de hyperlink dan?? Ik heb tot nu toe dit

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Input van een gebruiker omzetten in correct HTML
function convertToHTML($DBinput){
    $DBinput = nl2br($DBinput);


    //Zoeken naar input
    $tmpDBinput= strpos($DBinput,"http://www.");

    /*************
    *Hier kom ik dus niet verder omdat je dus die string eruit moet extracten
    *************/

    $DBinput = str_replace("http://www.", "<a href=http://www.", $DBinput);
    $DBinput = str_replace("www.", "<a href=http://www.", $DBinput);



    return $DBinput;
}


Maar: er is dus geen functie binnen PHP die al heel aardig dit voor mij zou doen, alle hyperlinks converten..

  • mocean
  • Registratie: November 2000
  • Laatst online: 25-11 11:02
Kijk eens naar regular expressions, daarmee kan je zoeken op een string die start met www of http:// en dan replacen met een hyperlink.

Edit: Zoek maar eens met preg_match op het pattern "((http://|www)(\S*))"

[ Voor 22% gewijzigd door mocean op 10-04-2007 01:37 ]

Koop of verkoop je webshop: ecquisition.com


  • bRight
  • Registratie: Juli 2000
  • Laatst online: 27-11-2024

bRight

digitaal

PHP:
1
2
3
4
5
6
7
8
9
function make_clickable($text)
{
    $ret = ' ' . $text;
    $ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)#ise", "'\\1<a href=\"\\2\" >\\2</a>'", $ret);
    $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#ise", "'\\1<a href=\"http://\\2\" >\\2</a>'", $ret);
    $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
    $ret = substr($ret, 1);
    return($ret);
}