PHP - automatischer Link

M

maarten

HI!




http://www.test.de

99% sicher wird der obrige Link in einen richtigen umgewandelt.


Das geht bestimmt mit ereg_replace()



aber wie?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


also nochmal:)

ich hab ein Guestbook programmiert, und wenn der Einträger ein Link postet, soll dieser automatisch umgewandelt werden.

aus http :// http://www.test. de (im text)


möchte ich machen:


<a href= " http://www.test.de" >
http://www.test.de < /a >



weiß jemand wie das geht?






THX schomal
___________
mp3stern
 
das ist alles was du brauchst :)

PHP:
    $inhalt=eregi_replace("([ \r\n])http://([^ ,\r\n]*)","\\1http://\\2",$inhalt);
    $inhalt=eregi_replace("([ \r\n])https://([^ ,\r\n]*)","\\1https://\\2",$inhalt);
    $inhalt=eregi_replace("([ \r\n])ftp://([^ ,\r\n]*)","\\1ftp://\\2",$inhalt);
    $inhalt=eregi_replace("([ \r\n])www\\.([^ ,\r\n]*)","\\1http://www.\\2",$inhalt);
  
    $inhalt=eregi_replace("^http://([^ ,\r\n]*)","http://\\1",$inhalt);
    $inhalt=eregi_replace("^https://([^ ,\r\n]*)","https://\\1",$inhalt);
    $inhalt=eregi_replace("^ftp://([^ ,\r\n]*)","ftp://\\1",$inhalt);
    $inhalt=eregi_replace("^www\\.([^ ,\r\n]*)","http://www.\\1",$inhalt);

edit: is auch für ftp https....eben die verschiedenen formen. Auch wenn man im Gästebuch vielleicht nicht alle gebrauchen kann :):)
 
so, da haben wir mal wieda regul#äre ausdrücke und ich check die net, kann mir die man jemand versuchen zu erklärn, oder kennt ein tut in dem es so beschrieben wäre, als wär ich n n00b *g*
ich kann fast alles, aba bei regulärn ausdrücken haakts *gg*

besonders bezogen auf preg_Replace(); bitte
 
@ice-bird

HI!


is zwar voll nett, dass du dir die Mühe gemacht hast etc.


Aber ich bräuchte eigentlich nur den Code, dass er

"http://www.test.de"

in einen richtigen link (mit <a href> et.c) umwandelt....




das einzig brauchbare :p scheint mir da das unterste zu sein.... und das funzt leider nicht :-(
(er ändert gar nix um!)



hmmm
cya
___________
:)
 
sorry....

das was ich da gepostet habe ist für etc.

sobald ich mehr zeit habe poste ich das richtige......(was du suchst)
 
hab leider immer noch nicht sehr viel zeit, aber hier ist das was du suchst:
PHP:
//im ersten schritt wird in HRC code umgewandelt
$inhalt=eregi_replace("^http://([^ ,\r\n]*)","http://\\1",$inhalt);
$inhalt=eregi_replace("([ \r\n])http://([^ ,\r\n]*)","\\1http://\\2",$inhalt);
//und dann in html
$inhalt=eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" target=_blank>\\1</a>",$inhalt);
$inhalt=eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\1</a>",$inhalt);

vielleicht findet sich noch einer, der das ganze in einem schritt macht aber ich hab da jetzt keine zeit zu.
 
warum nicht einfach...

PHP:
print "<a href= \"$variable\" >$variable< /a >"

...bei der ausgabe wo du den link hinhaben willst... natürlich muss
in $variable das stehen was derjenige eingibt
 
aber bei

PHP:
print "<a href= \"$variable\" >$variable< /a >"
brauchst ja ne eigenes feld für die link eingabe oder? ich denk hier is eher gemeint das wenn mitten in nem text ne url steht die als url erkannt wird und dann entsprechend verlinkt.

@bluebird: irgendwie funzt dein script bei mir net... auch wenn ich des " durch \" ersetz, was du vergessen hast, des halb wird alles was hinter http:// als kommentar interpretiert, nur so am rande ;). aber auch wenn mans ersetzt funzts (bei mir zumindest) net. aber ich bin eh net der php-held :)
 
Original geschrieben von stiffy
aber bei

PHP:
print "<a href= \"$variable\" >$variable< /a >"

brauchst ja ne eigenes feld für die link eingabe oder? ich denk hier is eher gemeint das wenn mitten in nem text ne url steht die als url erkannt wird und dann entsprechend verlinkt.

@bluebird: irgendwie funzt dein script bei mir net... auch wenn ich des " durch \" ersetz, was du vergessen hast, des halb wird alles was hinter http:// als kommentar interpretiert, nur so am rande ;). aber auch wenn mans ersetzt funzts (bei mir zumindest) net. aber ich bin eh net der php-held :)




HI!


ich muss dir in ALLEN punkten recht geben! :)
 

Neue Beiträge

Zurück