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

    Convertire tag html in testo

    Tramite questa stringa:

    Codice PHP:
    echo $sub substr ($row_rsNews['newsText'] ,,200) . '...' 
    costruisco un anteprima di una news estraendo i primi 200 caratteri del testo e aggiungendo i puntini finali.

    Purtroppo questo sistema si inceppa quando nel testo dell'articolo ho usato dei tag html.

    Per esempio in un articolo che inizia con questa frase (HTML):

    codice:
    "rilasciata la nuova versione del software xyz, scaricabile qui"
    mi vengono conteggiati tutti i caratteri del tag <a>, per un totale di 89, mentre a me servirebbe che ne conteggiasse 62

    Questo mi crea ovvi problemi quando il tag si trova a cavallo del duecentesimo carattere (nell'anteprima il tag si spezza senza chidersi), o quando, per sempio, inserisco un tag img all'inizio dell'articolo (mi viene riportata ovviamente l'immagine, rovinandomi l'anteprima).

    In pratica vorrei che venissero conteggiati soltanto i caratteri "leggibili" come se fosse un testo TXT.

    Potete aiutarmi?
    www.blogotom.com
    Tecnologia mobile evoluta. News e risorse per cellulari e dispositivi multimediali.

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Potresti fare un repalce per eliminare tutto cio' che sta fra < > e poi fare il resto.
    Codice PHP:
    $string preg_replace('/<(.)*>/'''$string); 
    Dovrebbe essrere giusto non ho provato

  3. #3
    Potresti usare uno strip_tags() sul testo prima del conteggio, e magari eliminare pure invii e tabulazioni e riconvertire le eventuali entità HTML in caratteri
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  4. #4
    Grazie, è quello di cui avevo bisogno, ho risolto così:

    Codice PHP:
    $string preg_replace('/<(.)*>/'''$row_rsNews['newsText']);
    echo 
    $sub substr ($string ,,200) . '...'
    www.blogotom.com
    Tecnologia mobile evoluta. News e risorse per cellulari e dispositivi multimediali.

  5. #5
    Attenzione perchè quell'espressione regolare è troppo "ingorda" (greedy), prova infatti questo codice:
    Codice PHP:
    <?php
    $string 
    'testo bla bla bla [url=""]Link[/url] altro testo bla bla bla [b]Grassetto![/b]';

    echo 
    preg_replace('/<(.)*>/'''$string);
    ?>
    Come vedi la RegExp porta via troppa roba.

    Soluzioni:

    1) Usi la funzione dedicata di PHP strip_tags()
    2) Migliori la RegExp così: preg_replace('/<(.*?)>/', '', $string);
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Giusto non avevo pensato al caso, io la uso per stringhe bene o male sempre ugauli

  7. #7
    Probabilmente userò la soluzione 1.

    Tuttavia sarei curioso di sapere quali vantaggi porterebbe la soluzione 2.

    Grazie
    www.blogotom.com
    Tecnologia mobile evoluta. News e risorse per cellulari e dispositivi multimediali.

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.