Denna funktion hittar allt som börjar med "www." och "http://", eller som är en giltig e-postadress och länkar upp det. Den är dock smart nog att ignorera det som ligger inom HTML-taggar!
Märkte efter tester dock att den inte är 100% felfri.
Det skiter sig vid detta:
$text = "<a href=\"mailto:toja@stambokaj.se\">Maila mig</a>";
$text = strLinks($text);
I detta så ignorerar den inte det som ligger inom HTML-taggar, fast det fungerar fint om det är en vanlig http eller www adress..!!
yesss. du har så rätt så. fixat (men inte buggfritt). ska man göra det här på rätt sätt är det ett gigantiskt jobb - vi måste bla kontrollera om vi befinner oss inne i en lång tag (en a som sträcker sig över flera rader), etc. För att inte tala om hur man ska hantera felformaterade html-dokument...
Jag är nöjd med resultatet, men tänker inte acceptera svaret som slutgiltigt...
För jag tror att det går att lösa smidigare, genom att på något sätt göra som de andra, där man kollar om länken omsluts av html-taggar... jag har provat mig fram men fattar inte riktigt hur det fungerar.. men någon kanske vet!??
ett problem med att matcha e-postadresser är att man förr eller senare börjar matcha saker som inte är e-postadresser...
om detta ska betraktas som en e-postadress:
test.
test@
dummymail.
com
ja, där är det rätt mycket som inte är adresser som kommer att tolkas som det. det förbättring som jag ser man kan göra i regexpen är att kontrollera att man verkligen inte är inuti en tag. men då kommer frågan hur vi hanterar följande scenario:
<<BACKA.
pelle@pelikan.se heter jag och jag gick från hit > dit
inte för att det är korrekt (html)kod, men för att illustrera problemet med var taggar börjar och slutar i verkligheten...