Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema Tag contenuti nel campo

    Buon giorno, altro quesito, ho questo problema.
    Praticamente, all'interno di una normale news testuale, potrei aver bisogno, di inserire dei tag come il grassetto per porzioni di frasi"" oppure linkare delle parole che aprono dei file etc etc.
    Visualizzando un'anteprima della news, tronco, la stessa ad un tot di caratteri, ed aggiungendo un link ipertestuale [continua], che mi apre un popup contenente la news per intero.
    Ora, il problema sorge, quando la "troncatura" arriva proprio su uno dei tag presenti all'interno della news, restituendomi questo:
    codice:
    //testo restituito in presenza del tag troncato
    
    vado a [b]Roma</...[continua]
    Praticamente, l'anteprima della news è tutta testuale, il link ipertestuale viene interpretato come testo e non come tag.

    Domanda: come faccio a trattare i tag all'interno del campo della tabella, in presenza di una "troncatura"?

    Spero di essermi spiegato.
    Grazie mille...

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Mi sembra che ci siano due problemi diversi qui.
    Quello del tag che rimane troncato in seguito alla troncatura ( ) del testo è un problema effettivo e non facilmente risolvibile.
    Però che ti trasformi in testo anche il link non dovrebbe capitare, probabilmente sbagli qualcosa da qualche parte. Difficile capire senza vedere il codice...

    Per quanto riguarda il primo problema, credo che la soluzione più furba potrebbe essere di eliminare tutti i tag dall'anteprima: quindi prima fai lo strip_tags(), poi applichi la troncatura sul testo ripulito. In questo modo perdi la formattazione, ma almeno non rischi di avere quell'effetto. Se l'anteprima è di poche parole, non dovrebbe essere un grosso problema rinunciare alla formattazione. Se invece la vuoi mantenere, allora ci vuole un algoritmo un po' complicato

  3. #3
    curiosità.... è corretto inserire i tags all'interno del campo, tra quelle parole o frasi che necessitano per esempio di essere in rilievo come un grassetto Antonio?

  4. #4
    allora ho fatto in questo modo e sembra funzionare....
    Codice PHP:
    //**** inserisce il tag mancante****//
    function count_t($tag$text) {
        
    $count 0;
        for(
    $i=0;$i<=strlen($text) - strlen($tag);$i++) {
            
    $s substr($text$istrlen($tag));
            if(
    $s == $tag)
                
    $count++;
        }
         
        return 
    $count;
    }

    //array di possibili TAG presenti all'interno della news per esempio [b]Nome[/b], se manca la chiusura del TAG questa funzione ne aggiunge una
    $tag = array(    "[b];[/b]","[i];[/i]","<a>;</a>","

    ;</p>"
    ,"<h1>;</h1>","<h2>;</h2>","<h3>;</h3>","<h4>;</h4>","<h5>;</h5>","<h6>;</h6>",
                    
    "[list=1];[/list]","[*];","<ul>;[/list]" /* tag_aperto;tag_chiuso */);
    //**** inserisce il tag mancante****//


    $my_text "[b]23 maggio alle ore 12[/b], 
    presso la sala delle conferenze in ([b],Via le mani dal naso,45[/b]), 
    Saranno presenti, tra gli altri, [b] Antonio Cassano <"
    ;

    //inverto la stringa
    $my_text strrev($my_text);
    //prendo tutto il resto dopo la prima occorrenza che è lo spazio ' '
    $my_text strstr($my_text,' ');
    //rigiro la stringa per visualizzarla in modo corretto
    $my_text strrev($my_text);

    //aggiungo il tag di chiusura mancante
    foreach($tag as $t) {
        
    $g explode(";"$t);
        
    $diff count_t($g[0], $my_text) - count_t($g[1], $my_text);
        if(
    $diff >= 1) {
            for(
    $j 0;$j $diff;$j++)
                    
    $my_text .= $g[1];
        }
    }

    //visualizzo il testo definitivo e corretto
    echo $my_text
    Spero possa essere utile a qualcuno..
    Se può essere ottimizzato fatemi sapere per favore.
    Buona giornata :|

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.