Jos haen tekstitiedoston php:llä sivuille seuraavasti:
<?php echo nl2br(file_get_contents('sijainti')) ?>
niin se tulee ihan ok! Mutta miten mä pystyisin lisäämään tohon niin, että jos siellä txt-tiedostossa on http-osoite niin se tulisi sivuilleni suoraan linkkinä, jota painamalla se aukeaisi uuteen ikkunaan?
Säännöllisillä lausekkeilla, vaikkapa preg_replace-funktion avulla.
Ja turha väsätä omia, preg_replacen User Noteseista löytyy valmiita funkkareita, etsii vain sanalla 'link' tms. w3schoolsista löytynee apua uuden ikkunan aukaisuun, mutta usealla voi olla uusien ikkunoiden avaus pois käytöstä.
tsuriga kirjoitti:
w3schoolsista löytynee apua uuden ikkunan aukaisuun, mutta usealla voi olla uusien ikkunoiden avaus pois käytöstä.
Miten niin? Sekoitit popuppiin? Tässä haetaan selvästi target="_blank":ia eli <a href="testi" target="_blank">Uuteen ikkunaan</a>. Tosin voihan se avautua uuten välilehteen jos on niin asetukset :)
target="_blank" on myös ilkeä. Jos haluan uuden ikkunan (tabin), avaan sellaisen itse, kiitos.
Niin, asetukset voivat sanoa myös, että se pitää avata samaan välilehteen.
eli mä haen tossa tota target=blank juttua mutta tärkeimpänä tietona kaipaisin tietoa siitä miten mä saan haettua txt-tiedosta www-linkkejä nettisivuille niin että linkit tulevat linkkeinä suoraan!
Kuten Metabolix sanoi, regexp-korvauksella. Siis jotain tyyliin preg_replace('/http:\/\/{.*}\s/', '<a href="\0">\0</a>', $teksti);
(Vastuuvapautus: en osaa regexpiä.)
oisko kellään mitään suoraan toimivaa esimerkkiä tosta?? ei oikein ton preg_replacen käyttön onnistu!
php.netin manuaalin User Comments -osiosta löytyy usein näitä yleishyödyllisiä koodinpätkiä. Kuten tämäkin:
<?php function make_links_blank($text) { return preg_replace( array( '/(?(?=<a[^>]*>.+<\/a>) (?:<a[^>]*>.+<\/a>) | ([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+) )/iex', '/<a([^>]*)target="?[^"\']+"?/i', '/<a([^>]+)>/i', '/(^|\s)(www.[^<> \n\r]+)/iex', '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+) (\\.[A-Za-z0-9-]+)*)/iex' ), array( "stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">\\2</a>\\3':'\\0'))", '<a\\1', '<a\\1 target="_blank">', "stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\">\\2</a>\\3':'\\0'))", "stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))" ), $text); } ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.