JoakimMedlem sedan dec. 199982 inlägg Tjo!
Sitter o pillar lite med en chat, HTML i inläggen är inte tillåtna men jag vill att om någon skriver "http://www.whatever.nåt" skall det skrivas ut som en länk, alltså "<A HREF="http://www.whatever.nåt">http://www.whatever.nåt</A> likadant med mailadresser. om nån skriver "mittnamn@whatever.nåt" skall det skrivas ut som "<A HREF="mailto:mittnamn@whatever.nåt">mailto:mittnamn@whatever.nåt</A>" är inte så hemma på regexp (än) så att jag kan fixa detta så det funkar smärtfritt. Men det finns säkert nån som är en fena på det här? =)
Trevlig helg!
------------------
Joakim Johansson
Vice VD / tekniker
Stereo Communication
JojoxxMedlem sedan juni 20004 308 inlägg Om vi tänker oss att du har texten i variabeln $html;
# Först URL'er.
foreach ($html =~ /http:\/\/(.*?)\s/ig){ $html =~ s/http:\/\/$_/<a href="http:\/\/$_">http:\/\/$_<\/a>/ig; }
# Sedan giltiga e-post adresser.
foreach ($html =~ /(\S*)/ig){ if(length()>5&&index($_,'@')>0&&rindex($_,'.')>index($_,'@')+1){ $html =~ s/$_/<a href="mailto:$_">$_<\/a>/ig; } }
--- Tillägg ---
Sista foreach fram till } skall vara på en och samma rad.
------------------
/ J
[Redigerat av Jojoxx den 04 jun 2001]
JoakimMedlem sedan dec. 199982 inlägg Hej!
Tack för svaret!
För mailadresser funkar det fint men URL'er förblir olänkade.
// Joakim
JojoxxMedlem sedan juni 20004 308 inlägg Det var konstigt. Du är säker på att du inte missat något när du kopierat koden? Jag lade upp ett test här med exakt samma kod.
------------------
/ J
JoakimMedlem sedan dec. 199982 inlägg Ja, det är konstigt =)
Jag har testat hit och dit och det funkar finfint om jag lägger det som skall "autolänkas" som en variabel i scriptet. Men så fort jag skall göra samma sak med data från/till chatten (har testat att lägga det både när ett inlägg postas och skriva med länkningen till databasen och att lägga det när scriptet hämtar inläggen och parsar dom för visnig och köra länkning då) men det vill inte. Funderar på om det kan ha nåt med teckenkodning att göra...
// Joakim
JojoxxMedlem sedan juni 20004 308 inlägg Tja... det regexpet gör är att leta reda på "http://"+något och slutar med en white-space (mellanslag, radbrytning, tab etc.). Men att ersätta mellanslag till & verkar ju lite dumt. Prova att dumpa ut ett inlägg till en text-fil så ser du exakt vad det är för tecken som används.
------------------
/ J
JoakimMedlem sedan dec. 199982 inlägg Jag har gjort det, jobbar med textfilsdatabas nämligen, allt "ser" okej ut i textfilen. Alla tecken ser ut som dom bör. Klurigt..
// Joakim
JojoxxMedlem sedan juni 20004 308 inlägg Jo, men dumpa det data som du använder till regexpen på samma ställe i scriptet (ifall någon form av tecken-konvertering skulle göras av scriptet). Det måste ju skillja något på de tecken som du får in, mot de som du hårdkodar i scriptet när det ena fungerar men inte det andra. Annars vore det magi :)
------------------
/ J