Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 28-11-11, 22:43   #1 (permalink)
User
 
L'avatar di Khendall
 
Data di registrazione: Dec 2006
Ubicazione: Cagliari
Messaggi: 100
Tagliare un articolo

Salve ragazzi ho un problema, anzi l'ho sempre avuto, vorrei poter tagliare un testo lungo di un articolo in modo che possa mostrare un anteprima,
ora, il problema non e tanto tagliare il testo in sè, senza troncare le parole, a questo ho i l rimedio, ma vorrei che non lasciasse tags nel testo aperti, che sò uno <strong> o un >em> ecc ecc, potrei usare uno strip_tags(), ma vorrei che tenesse gli accapo, eventuali immagini ad inizio articolo ecc,

conoscete un metodo valido?
Khendall non in linea   Rispondi citando
Vecchio 29-11-11, 12:26   #2 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Ciao Khendall,
puoi usare questa classe:
Codice PHP:
class String {
    public static function 
truncate($text$length$suffix '&hellip;'$isHTML true){
        
$i 0;
        
$tags = array();
        if(
$isHTML){
            
preg_match_all('/<[^>]+>([^<]*)/'$text$mPREG_OFFSET_CAPTURE PREG_SET_ORDER);
            foreach(
$m as $o){
                if(
$o[0][1] - $i >= $length)
                    break;
                
$t substr(strtok($o[0][0], " \t\n\r\0\x0B>"), 1);
                if(
$t[0] != '/')
                    
$tags[] = $t;
                elseif(
end($tags) == substr($t1))
                    
array_pop($tags);
                
$i += $o[1][1] - $o[0][1];
            }
        }
        
        
$output substr($text0$length min(strlen($text),  $length $i)) . (count($tags array_reverse($tags)) ? '</' implode('></'$tags) . '>' '');
        
        
// Get everything until last space
        
$one substr($output0strrpos($output" "));
        
// Get the rest
        
$two substr($outputstrrpos($output" "), (strlen($output) - strrpos($output" ")));
        
// Extract all tags from the last bit
        
preg_match_all('/<(.*?)>/s'$two$tags);
        
// Add suffix if needed
        
if (strlen($text) > $length) { $one .= $suffix; }
        
// Re-attach tags
        
$output $one implode($tags[0]);
        
        return 
$output;
    }

Thedarkita ora è in linea   Rispondi citando
Vecchio 29-11-11, 15:22   #3 (permalink)
User
 
L'avatar di Khendall
 
Data di registrazione: Dec 2006
Ubicazione: Cagliari
Messaggi: 100
perfetto, grazie
Khendall non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:36.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.