- Home
- Categorie
- Coding e Sistemistica
- PHP
- In una chat fare in modo che se viene scritto un link appaia al posto dell...
-
Espressioni regolari:
qui dovrebbe esserci come fare:
http://php.html.it/articoli/leggi/851/espressioni-regolari/5/
-
@Thedarkita said:
Espressioni regolari:
ciao e grazie volevo chiedere quindi in quale pagina della chat devo inserire questo codice?
[php]<?php
function CodeUrl($link) {
$Search = "^(https?|ftp)://([^<>[:space:]]+)$";
$Replace = "<a href="\1://\2" target="_blank">\1://\2</a>";
return eregi_replace($Search, $Replace, $link);}
// ESEMPIO DI UTILIZZO
echo CodeUrl("w.w.w.html.it");?> [/php]
nella pagina insert.php o nella pagina messaggi.php? grazie
-
di stampa dei msg
-
@Thedarkita said:
di stampa dei msg
immaginavo infatti ho fatto una prova ma mi appaiono tutti i link anche delle smiles e dei simbolettimeteo, io voglio che questo codice agisca solo nella parte del messaggio scritto apsetta che ti posto il codice che ho fatto ma che non mi va bene:
[PHP]<html>
<head>
<title>Messaggi degli utenti</title>
<?php
include("config.php");
echo "<meta http-equiv="refresh" content="$time_refresh">";
?>
<?phpfunction CodeUrl($link) {
$Search = "^(https?|ftp)://([^<>[:space:]]+)$";
$Replace = "<a href="\1://\2" target="_blank">\1://\2</a>";
return eregi_replace($Search, $Replace, $link);}
// ESEMPIO DI UTILIZZO
echo CodeUrl("w.w.w.html.it");?>
</head>
<body bgcolor="white">
<?php
//Creo l'array dove inserirò le informazioni
$rows_utenti_info = array();
//Leggo il file utenti
$rows_utenti=file($file_reg);
foreach($rows_utenti AS $v)
{
$tmp = explode('|', $v);
$rows_utenti_info[$tmp[0]]['citta'] = $tmp[6];
$rows_utenti_info[$tmp[0]]['provincia'] = $tmp[5];
}if (!(file_exists($file_mess))) {
$fpw = fopen($file_mess,"w"); fclose($fpw);
}
$rows_file=file($file_mess);
$rows_file_ord=array_reverse($rows_file);
$count=count($rows_file_ord);
for ($i=0;($i<$count && $i<$num_messag);$i++)
{
$dati_utente=explode("|",$rows_file_ord*);
$nick=$dati_utente[0];
eregi("[(.)] [(.)] (.*)", $nick, $regnick);
$nick_orig=$regnick[3];
$msg=$dati_utente[1];
$nick=stripslashes($nick);
$msg=stripslashes($msg);
$nick = str_replace('[em1]','<img src="emoticons/em1.gif">',$nick);
$msg = str_replace('[em1]','<img src="emoticons/em1.gif">',$msg);
for ($x=1;$x<27;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src="emoticons/$img.gif">";
$msg = str_replace("$img2","$path",$msg);
}
for ($x=1;$x<27;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src="emoticons/$img.gif">";
$nick = str_replace("$img2","$path",$nick);
}echo "<b><font face=\"verdana\" size=\"2\" color=\"#000000\"><a title=\"".$rows_utenti_info[$nick_orig]['provincia']."(".$rows_utenti_info[$nick_orig]['citta'].")\">$nick</a></font>: </b>"."<font face=\"verdana\" size=\"2\">".$msg."</font><br>";
}
?>
</body>
</html> [/PHP]
-
[php]<html>
<head>
<title>Messaggi degli utenti</title>
<?php
include("config.php");
echo "<meta http-equiv="refresh" content="$time_refresh">";
?>
</head>
<body bgcolor="white">
<?php
//Creo l'array dove inserirò le informazioni
$rows_utenti_info = array();
//Leggo il file utenti
$rows_utenti=file($file_reg);
foreach($rows_utenti AS $v)
{
$tmp = explode('|', $v);
$rows_utenti_info[$tmp[0]]['citta'] = $tmp[6];
$rows_utenti_info[$tmp[0]]['provincia'] = $tmp[5];
}if (!(file_exists($file_mess))) {
$fpw = fopen($file_mess,"w"); fclose($fpw);
}
$rows_file=file($file_mess);
$rows_file_ord=array_reverse($rows_file);
$count=count($rows_file_ord);
for ($i=0;($i<$count && $i<$num_messag);$i++)
{
$dati_utente=explode("|",$rows_file_ord*);
$nick=$dati_utente[0];
eregi("[(.)] [(.)] (.*)", $nick, $regnick);
$nick_orig=$regnick[3];
$msg=$dati_utente[1];
$nick=stripslashes($nick);
$msg=stripslashes($msg);
$nick = str_replace('[em1]','<img src="emoticons/em1.gif">',$nick);
$msg = str_replace('[em1]','<img src="emoticons/em1.gif">',$msg);
for ($x=1;$x<27;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src="emoticons/$img.gif">";
$msg = str_replace("$img2","$path",$msg);
}
for ($x=1;$x<27;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src="emoticons/$img.gif">";
$nick = str_replace("$img2","$path",$nick);
}
if(eregi("http://([^<>[:space:]]+)", $msg, $regs))
$msg = str_replace('http://'.$regs[1], '<a href="http://'.$regs[1].'">http://'.$regs[1].'</a>', $msg);echo "<b><font face=\"verdana\" size=\"2\" color=\"#000000\"><a title=\"".$rows_utenti_info[$nick_orig]['provincia']."(".$rows_utenti_info[$nick_orig]['citta'].")\">$nick</a></font>: </b>"."<font face=\"verdana\" size=\"2\">".$msg."</font><br>";
}
?>
</body>
</html> [/php]
-
funziona grazie, io volevo però che non apparisse il link per intero ma apparisse la scritta link e cliccandola mi si apre il link immesso è possibile farlo oppue solo con un database?
-
[php]<html>
<head>
<title>Messaggi degli utenti</title>
<?php
include("config.php");
echo "<meta http-equiv="refresh" content="$time_refresh">";
?>
</head>
<body bgcolor="white">
<?php
//Creo l'array dove inserirò le informazioni
$rows_utenti_info = array();
//Leggo il file utenti
$rows_utenti=file($file_reg);
foreach($rows_utenti AS $v)
{
$tmp = explode('|', $v);
$rows_utenti_info[$tmp[0]]['citta'] = $tmp[6];
$rows_utenti_info[$tmp[0]]['provincia'] = $tmp[5];
}if (!(file_exists($file_mess))) {
$fpw = fopen($file_mess,"w"); fclose($fpw);
}
$rows_file=file($file_mess);
$rows_file_ord=array_reverse($rows_file);
$count=count($rows_file_ord);
for ($i=0;($i<$count && $i<$num_messag);$i++)
{
$dati_utente=explode("|",$rows_file_ord*);
$nick=$dati_utente[0];
eregi("[(.)] [(.)] (.*)", $nick, $regnick);
$nick_orig=$regnick[3];
$msg=$dati_utente[1];
$nick=stripslashes($nick);
$msg=stripslashes($msg);
$nick = str_replace('[em1]','<img src="emoticons/em1.gif">',$nick);
$msg = str_replace('[em1]','<img src="emoticons/em1.gif">',$msg);
for ($x=1;$x<27;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src="emoticons/$img.gif">";
$msg = str_replace("$img2","$path",$msg);
}
for ($x=1;$x<27;$x++)
{
$img="em".$x;
$img2="[".$img."]";
$path="<img src="emoticons/$img.gif">";
$nick = str_replace("$img2","$path",$nick);
}
if(eregi("http://([^<>[:space:]]+)", $msg, $regs))
$msg = str_replace('http://'.$regs[1], '<a href="http://'.$regs[1].'">link</a>', $msg);echo "<b><font face=\"verdana\" size=\"2\" color=\"#000000\"><a title=\"".$rows_utenti_info[$nick_orig]['provincia']."(".$rows_utenti_info[$nick_orig]['citta'].")\">$nick</a></font>: </b>"."<font face=\"verdana\" size=\"2\">".$msg."</font><br>";
}
?>
</body>
</html> [/php]
-
mille grazie, per l'ultima richiesta ci ero arrivato ma non ho pensato di editare il messaggio, come sempre sei mitico! ancora grazie. ;);)
-
prego
-
riesumo questo topic perchè è nato un inconveniente a cui spero di avere risposta, il tutto funziona molto bene, però solo se all'interno del messaggio c'è solo un link, mentre con più link nello stesso messaggio solo il primo diviene proprio un link cliccabile mentre gli altri appaiono scritti normalmente senza subire la modifica a link vero e proprio, a questo punto come devo fare a rendere tutti link e non solo il primo?
grazie a chi mi aiuterà