Eccomi! Più o meno ho capito, ma come si fa?![]()
Eccomi! Più o meno ho capito, ma come si fa?![]()
Eccomi! Più o meno ho capito, ma come si fa?![]()
puoi farlo con mysql_fetch_assoc (con MySQL ovviamente...):
a questo punto hai un array $testi con indice uguale al nome del campo. Fai:
$risultato = mysql_query(bla bla bla);
while ($testi = mysql_fetch_assoc($risultato)){
preg_match("/(www)\.([^[:blank:]]+)/i", $testi['link'] , $match);
echo "<a href=\"http://".$match[0]."\">".$match[0]."</a>";
}
occhio: nel colorato in rosso ho posto $testi['link']ponendo che 'link' sia il nome del campo nel db in cui hai il testo con gli indirizzi da linkare...
Prova, e poi dimmi. :![]()
E' andato così... graziecodice:preg_match("/(www)\.([^[:blank:]]+)/i", $testo, $match); $testo = str_replace($match[0], "<a href=\"http://".$match[0]."\" target=_blank>".$match[0]."</a>", $testo);![]()
Volendo far riconoscere altre sottostringhe, es. http:// ?
Aiutooooooooooooooooooo![]()
![]()
![]()
![]()
![]()
ah, non avevo cpaito il problema.
per usare altre sottostrighe di riconoscimento basta metterle nell'espressione regolare.
Puoi anche usare dei delimitatori, ad es:
::www.ciao.it::, lo cercheresti così...
preg_match("/:[^:]+)::/i", $stringa, $match);
echo "<a href=\"http://".$match[1]."\">".$match[1]."</a>";
leggiti questo tutorial:
http://freephp.html.it/articoli/view...sp?id=69&pag=1
e studia le funzioni preg_match e preg_match_all sul mauale PHP
Proverò, grazieOriginariamente inviato da giohappy
ah, non avevo cpaito il problema.
per usare altre sottostrighe di riconoscimento basta metterle nell'espressione regolare.
Puoi anche usare dei delimitatori, ad es:
::www.ciao.it::, lo cercheresti così...
preg_match("/:[^:]+)::/i", $stringa, $match);
echo "<a href=\"http://".$match[1]."\">".$match[1]."</a>";
leggiti questo tutorial:
http://freephp.html.it/articoli/view...sp?id=69&pag=1
e studia le funzioni preg_match e preg_match_all sul mauale PHP![]()
Niente, non mi viene!
Allora, presupponendo che per www ho fatto:
devo fare la stessa cosa per http:// https ftp.codice:preg_match("/(www)\.([^[:blank:]]+)/i", $testo, $match); $testo = str_replace($match[0], "<a href=\"http://".$match[0]."\" target=_blank>".$match[0]."</a>", $testo);
Poi ho trovato:
va bene per una stringa precisa, ma io devo appliccarla su un testo intero.codice:$mail = "mail@sito.it"; $testo eregi_replace("^([a-z0-9\._-]+)(@[a-z0-9\.-_]+)(\.{1}[a-z]{2,6})$", "<a href=\"mailto:\\1\\2\\3\">\\1\\2\\3</a>", $mail);
Non è che puoi ancora aiutarmi?
il metodo di ricerca usato per http://, www, https, ftp, vale anche per le e-mail... nel senso che
$mail = "mail@sito.it";
$testo = eregi_replace("^ ([a-z0-9\._-]+)(@[a-z0-9\.-_]+)(\.{1}[a-z]{2,6})$ ", "<a href=\"mailto:\\1\\2\\3\">\\1\\2\\3</a>", $mail);
basta che togli la ricerca ad inizio stringa e fine stringa, la quale indica una ricerca sull'esatta stringa (ovvero che dall'inizio alla fine ci sia solo un "mail@sito.it", capito?
quindi sarà:
$mail = "ciao mail@sito.it ciao";
$testo = eregi_replace("([a-z0-9\._-]+)(@[a-z0-9\.-_]+)(\.{1}[a-z]{2,6}) ", "<a href=\"mailto:\\1\\2\\3\">\\1\\2\\3</a>", $mail);
echo $testo;
vedrai che funziona!