Tähän kaipaisin pikkumuutosta, mutta miten sen toteuttaisin, niin että saa toimimaan.
Tilannne on tässä nyt sellainen, että tämä putkasta löytämäni skripti vaatii välilyönnin tuohon linkin eteen. Ei siis toimi, jos linkki sattuukin olemaan aivan rivin alussa. Miten saisi muutettua niin, että tuo välilyönti ei olisi pakollinen?
$lauseke = "/(\s|^)"; // siis tämä $lauseke .= "(http:\/\/|www\.)"; $lauseke .= "([\w\.\/\-_?=&@%~]+)"; $lauseke .= "(\s|$)/i"; $muutettu = preg_replace($lauseke, "$1<a href=\"$2$3\" target=\"_blank\">$2$3</a>$4", $teksti); $muutettu = str_replace("href=\"www.", "href=\"http://www.", $muutettu);
Pekka Mansikka kirjoitti:
tämä putkasta löytämäni skripti vaatii välilyönnin tuohon linkin eteen. Ei siis toimi, jos linkki sattuukin olemaan aivan rivin alussa.
Ei vaadi välilyöntiä, vaan whitespace-merkin, joihin kuuluu myös se rivinvaihtomerkki. Tuon siis pitäis toimia ihan tuollaisenaan.
Pekka Mansikka kirjoitti:
Miten saisi muutettua niin, että tuo välilyönti ( $lauseke = "/(\s|^)";) ei olisi pakollinen?
Tämä nyt joka tapauksessa tehään laittamalla asteriski tuonne loppuun: "/(\s|^)*";
Mutta kun ei toiminut, jos linkki on ihan rivin alussa. Johtunee varmaan siitä, että rivinvaihtomerkit on tulostuksessa muutettu br-tageiksi.
Mutta kiitos, tuon muutoksen myötä toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.