• User Attivo

    @carlitos1982 said:

    Si,Thedarkita ho provato anche nel prelevare la variabile contenente il testo e ad inserirla nella varriabile $stringa,purtroppo però il risultato non cambia.
    Oro provo subito con la funzione ripresa da swcd ossia wordwrap.

    Ottimo...funziona tutto alla grande ora
    [php]
    <?
    include "config.php"; // file di connessione al Db

    $sql_select="SELECT id_user, testo,tempo FROM minichat ORDER BY id DESC LIMIT 10";
    $query_select= @mysql_query($sql_select) or die (mysql_error());

    while($row=mysql_fetch_array($query_select))
    {
    //funzione che trasforma simboli in immagine
    $row['testo'] = str_replace(":-)", "<img src='/faccine/smile.gif'>", $row['testo']);
    $row['testo'] = str_replace(":-+", "<img src='/faccine/faccia.gif'>", $row['testo']);

    $stringa=$row['testo'];
    $nuova_stringa = wordwrap($stringa, 48, "<br />\n");

    echo"<table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    Ecco la stampa:<br /><br />".$row['id_user']."</td><td>".$nuova_stringa."</td><td>".$row['tempo']."</tr>";

    }
    ?>
    [/php]Ti ringrazio mille scwd per l intuizione avuta;)

    Mi succede una cosa alquanto strana però ora...praticamente quando inserisco le faccine lo script mi tramuta in immagine solo la prima di faccine che inserisco....mentre se inserisco piu' faccine nello stesso messaggio quelle seguenti alla prima mi visualizza il percorso delle faccine ma non l immagine...come mai?°_°
    Pensandoci a quanto detto da thedarkita questa cosa potrebbe esser dovuta al tag <br> ch e spezzetta il codice raggiunto il limite consentito di caratteri per riga e quindi non mi mostra le faccine ma bensi' il loro percorso...e credo che il problema sia proprio li' perchè aumentando i caratteri consentiti per riga le faccine vengono visualizzate sempre purchè non venga superato quel limite...
    C'è un modo per evitare ciò?


  • User Attivo

    Posta il codice html restituito dalla prima faccina che stampa correttamente fino alla faccina che non stampa (compresa). 😉


  • User Attivo

    Ok,ecco il codice html della pagina [php]
    <table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    carlitos</td><td><img src='/faccine/smile.gif'></td><td>01:42:32</tr><table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    carlitos</td><td><img src='/faccine/smile.gif'><img<br />src='/faccine/faccia.gif'></td><td>01:29:25</tr><table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    carlitos</td><td><img src='/faccine/smile.gif'><img<br />src='/faccine/faccia.gif'></td><td>01:27:09</tr><table>

    <th colspan="2">Messaggi</th>

    </table>
    </div></td>
    </tr>
    </table>

    [/php]
    Ho notato quel <br> che mi spezzetta il tag img...


  • User Attivo

    Ok abbiamo capito dov'è il problema:

    
    <img src
    
    ```Allora analizziamo la situazione:
    abbiamo il problema che c'è lo spazio tra img ed src; quindi proporrei di fare una cosa:
    togliamo tutti gli spazi da
    

    <img src='/faccine/smile.gif'>

    ed inserisci questo al posto del codice precedente nello script
    

    <img_src='/faccine/smile.gif'>

    
    Fatto questo non penso che un utente inserisca una stringa "img_src" quindi possiamo inserire un controllo sulla stringa che sostituisca  al frammento di stringa passato (<img_src) questo: <img src
    Puoi farlo con uno  ****str_replace****.
    Spero di esser stato chiaro (vado di fretta:D).
    Prova e facci sapere. ;)
    

  • User Attivo

    Credo di si....ora provo;)


  • User Attivo

    Allora ho fatto cosi'
    [PHP]
    <?
    include "config.php"; // file di connessione al Db

    $sql_select="SELECT id_user, testo,tempo FROM minichat ORDER BY id DESC LIMIT 10";
    $query_select= @mysql_query($sql_select) or die (mysql_error());

    while($row=mysql_fetch_array($query_select))
    {
    $row['testo'] = str_replace(":-)", "<img_src='/faccine/smile.gif'>", $row['testo']);

    $row['testo'] = str_replace(":-+", "<img_src='/faccine/faccia.gif'>", $row['testo']);

    $row['testo'] = str_replace("<img_src", "<img src", $row['testo']);

    $stringa=$row['testo'];

    $nuova_stringa = wordwrap($stringa, 48, "<br />\n");
    

    echo"<table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    ".$row['id_user']."</td><td>".$nuova_stringa."</td><td>".$row['tempo']."</tr>";

    }
    ?>
    [/PHP]

    Purtroppo non va...il problema rimane quello di prima:x


  • User Attivo

    Normale! 😄
    Tu prima devi fare la stringa con gli underscore (_) come ti ho fatto vedere, poi mandare a capo e infine ritrasformare la stringa. 😉
    Così tu non hai fatto altro che trasformare, riportare all'originale e mandare a capo, invece devi, trasformare, mandare a capo e infine cambiare gli underscore con uno spazio come detto precedentemente.
    😉
    (Non ci sarò per un paio di giorni).


  • User Attivo

    :mmm:
    Non ho capito dovrei aggiungere dei <br> ad ogni str_replace sulle faccine che inserisco?
    Cosi'?
    [PHP]
    $row['testo'] = str_replace(":-)", "<img_src='/faccine/smile.gif'>", $row['testo'])."<br>";
    [/PHP]


  • User Attivo

    Ho provato anche facendo cosi' ma nulla...non ho capito perfettamente il procedimento da eseguire:?


  • User Attivo

    Finalmente ho capito...e c'è l ho fatta:D
    [PHP]

    <?
    include "config.php"; // file di connessione al Db

    $sql_select="SELECT id_user, testo,tempo FROM minichat ORDER BY id DESC LIMIT 10";
    $query_select= @mysql_query($sql_select) or die (mysql_error());

    while($row=mysql_fetch_array($query_select))
    {
    $row['testo'] = str_replace(":-)", "<img_src='/faccine/smile.gif'>", $row['testo']);

    $row['testo'] = str_replace(":-+", "<img_src='/faccine/faccia.gif'>", $row['testo']);

    $stringa=$row['testo'];
    //mando a capo
    $nuova_stringa = wordwrap($stringa, 48, "<br />\n");
    //ritrasformo la stringa
    $nuova_stringa = str_replace("<img_src", "<img src", $row['testo']);

    echo"<table>

    <th colspan="2">Messaggi</th>

    </table>

    </div></td>
    </tr>
    </table>
    </div>
    ".$row['id_user']."</td><td>".$nuova_stringa."</td><td>".$row['tempo']."</tr>";

    }
    ?>
    [/PHP]
    Grazie swcd;)


  • ModSenior

    Rimane solo il problema che può inserirti il <br> in mezzo al tag img e generare qualche errore di visualizzazione.


  • User Attivo

    Scusa il ritardo ma come detto non ero a casa,
    comunque no, tu prima crei la stringa con gli underscore, poi la mandi a capo e infine la traduci in html con str_replace. 😉