• ModSenior

    Espressioni regolari:

    qui dovrebbe esserci come fare:
    http://php.html.it/articoli/leggi/851/espressioni-regolari/5/


  • User Attivo

    @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


  • ModSenior

    di stampa dei msg


  • User Attivo

    @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">";
    ?>
    <?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");

    ?>
    </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]


  • ModSenior

    [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]


  • User Attivo

    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?


  • ModSenior

    [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]


  • User Attivo

    mille grazie, per l'ultima richiesta ci ero arrivato ma non ho pensato di editare il messaggio, come sempre sei mitico! ancora grazie. ;);)


  • ModSenior

    prego


  • User Attivo

    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à