Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Necsus
    Registrato dal
    Oct 2006
    Messaggi
    87

    Nascondere e mostrare parte di un testo

    Salve, sto già da tempo cercando uno script che mi permetta di avere una parte di testo in mostra ed una parte nascosta.
    Grazie ad un pulsante vorrei che la parte nascosta del testo apparisse.
    Di per se è una cosa semplice da realizzare e so anche che è compito di JS ma io mi trovo in una situazione dove è proprio il PHP a bloccarmi:

    Codice PHP:
       $contenuto=$row['contenuto']; // Preleva la stringa dal DB
    echo "<td>$contenuto</td>"// Stampa la stringa 
    Quindi la stringa che vorrei "spezzare" e nascondere in parte è all'interno di una variabile PHP.
    Avevo provato ad usare
    Codice PHP:
    substr("$contenuto",0,1000); 
    Ma se la variabile $contenuto conteneva un tag dalla 999esima posizione alla 1006 , per esempio, in questo modo mi spezzava anche quello.

    Come potrei risolvere la situazione?

  2. #2
    Utente di HTML.it L'avatar di Ceras
    Registrato dal
    Oct 2009
    Messaggi
    141

    Re: Nascondere e mostrare parte di un testo

    Originariamente inviato da Necsus
    Come potrei risolvere la situazione?
    Codice PHP:
    $contenuto $row['contenuto']; // Preleva la stringa dal DB
    echo "<td>" limitaStringa($contenuto1000) . "</td>"// Stampa la stringa


    function limitaStringa($str$n) {
        
    // se non si supera il limite si ritorna la stringa così com'è
        
    if (strlen($str) <= $n)
            return 
    $str;
        
        
    // divido in 2 parti la stringa: la parte che verrà sicuramente presa ed il resto
        
    $parte1 substr("$str"0$n);
        
    $parte2 substr("$str"$nstrlen($str));
        
        if (
    $parte2[0] == ' ')
            
    // se il primo carattere del secondo pezzo di stringa è ' ' allora è il primo pezzo è delimitato e viene restituito così com'è
            
    $strRet $parte1;
        else {
            
    // in caso contrario, si prende anche la prima parola della parte2 (cioè finquando non c'è uno spazio)
            
    $parole explode(" "$parte2);
            if (
    count($parole) > 0)
                
    $strRet $parte1 $parole[0];
            else
                
    $strRet $parte1 $parte2// CASO ESTREMO: non ci sono spazi. Si può scegliere se troncare oppure prendere tutta la stringa (ho scelto la seconda)
        
    }
        
        return 
    $strRet;


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 © 2024 vBulletin Solutions, Inc. All rights reserved.