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.