2013-03-09 21 views
7

ho stringa:PHP tag rimozione html da stringa

<p justify;"="">Vers­lo cent­rai Lie­tu­vos ne­kil­no­ja­mo­jo turto plėt­ros aso­cia­ci­jos kon­kur­se ...</p> 

e vogliono vogliono rimuovere tag

<p justify;"=""></p> 

il mio codice:

$content = strip_tags($text, '<p>'); 

ma ottengo stringa vuota: string(0) "", cosa faccio di sbagliato?

risposta

4

Poiché l'HTML è scarsamente formato, probabilmente è necessario scrivere la propria espressione regolare per rimuovere i tag o pulire l'HTML prima di provare a rimuovere i tag.

Si potrebbe provare questo per rimuovere tutto ciò che "si presenta come" un tag:

$str = preg_replace("/<.*?>/", " ", $str); 
+0

Yep mal , questo è wordpress formando – Wizard

+0

Davvero? Perché wordpress utilizzare una citazione senza eguali? –

+0

Questo funziona per me. strip_tags converte solo tag in altri caratteri –

15

provare a mettere in quel modo

$content = strip_tags($text); 

Oppure si può fare con le espressioni regolari come quella:

$content = preg_replace('/<[^>]*>/', '', $text); 

con questo $content = strip_tags($text, '<p>'); si consente al tag <p> nella stri ng.

Per maggiori informazioni si veda il link http://php.net/manual/en/function.strip-tags.php

+0

E questa non è una soluzione in quanto il suo HTML non è formattato correttamente. –

+0

Non funziona. L'ho appena testato sulla mia scatola e quella prima citazione ineguagliata è il problema.Anche quel simpatico punto e virgola funziona con gli strip_tags, purché non abbia avuto quella prima citazione ... –

+0

@MihaiIorga Ya acconsente a te. Potrebbe essere un errore di battitura. – Toretto

2

Dal momento che il codice HTML non è formattata correttamente si potrebbe scegliere un approccio preg_replace():

$text = '<p justify;"="">Vers­lo cent­rai Lie­tu­vos ne­kil­no­ja­mo­jo turto plėt­ros aso­cia­ci­jos kon­kur­se ... </p>'; 
$content = preg_replace('/<[^>]*>/', '', $text); 
var_dump($content); 
// string(108) "Vers­lo cent­rai Lie­tu­vos ne­kil­no­ja­mo­jo turto plėt­ros aso­cia­ci­jos kon­kur­se ... " 

Codepad Example

Su strip_tags() docs si dice: Perché strip_tags () in realtà non convalida il tag HTML, parziale o rotto può comportare la rimozione di più testo/dati del previsto.

Anche il secondo parametro è per $allowable_tags.

-3

Questo potrebbe aiutare php-strip-tags

ok se prep_replace non funziona allora provare a utilizzare jQuery per rimuovere i tag HTML.
Vedi questo post javascript-how-to-strip-html-tags

+0

Bro vedere il mio post, sto usando 'strip_tags' – Wizard

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – Bohemian

+0

Grazie a @Bohemian, lo terrò a mente. Sono nuovo dello stackoverflow! – h4kl0rd

3

Questo eliminerà ogni cosa - tag, ascii, interruzioni di riga ma puro testo:

strip_tags(preg_replace('/<[^>]*>/','',str_replace(array("&nbsp;","\n","\r"),"",html_entity_decode($YOUR_STRING,ENT_QUOTES,'UTF-8')))); 
+0

Perché non funziona? tutte le soluzioni non funzionano .... – delive