2013-03-09 13 views
7

Ich habe string:PHP entfernen HTML-Tags aus string

<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> 

und wollen Tag entfernen wollen

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

mein Code:

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

aber ich bekomme leere Zeichenkette: string(0) "", Was ich falsch mache ?

Antwort

4

Da der HTML-Code schlecht formatiert ist, müssen Sie wahrscheinlich entweder einen eigenen Regexp schreiben, um Tags zu entfernen, oder den HTML-Code bereinigen, bevor Sie versuchen, Tags zu entfernen.

Sie könnten versuchen, dies alles zu entfernen, dass „sieht aus wie“ ein tag:

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

Yep schlecht , das ist Wordpress Formatierung – Wizard

+0

Wirklich? Warum sollte Wordpress ein unübertroffenes Zitat verwenden? –

+0

Das funktioniert für mich. strip_tags konvertiert Tags nur in andere Zeichen –

15

versuchen, es zu setzen, wie die

$content = strip_tags($text); 

Oder man kann es mit regulären Ausdrücken wie das tun:

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

Durch diese $content = strip_tags($text, '<p>'); ermöglichen Sie es dem <p>-Tag in der stri ng.

Für weitere Informationen siehe Link http://php.net/manual/en/function.strip-tags.php

+0

Und das ist keine Lösung, da sein HTML schlecht formatiert ist. –

+0

Es funktioniert nicht. Ich habe es gerade auf meiner Box getestet und dieses erste unübertroffene Zitat ist das Problem.Sogar dieses alberne Semikolon funktioniert mit strip_tags, solange er dieses erste Zitat nicht hatte ... –

+0

@MihaiIorga Ja, ich stimme dir zu.Es kann Tippfehler sein. – Toretto

2

Da Ihr HTML nicht richtig formatiert, dass ein preg_replace() Ansatz wählen könnten:

$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

Auf strip_tags() docs heißt es: Weil strip_tags () validiert den HTML-Code nicht, partielle oder fehlerhafte Tags können dazu führen, dass mehr Text/Daten als erwartet entfernt werden.

Auch zweiter Parameter ist für $allowable_tags.

-3

jquery mit Dies könnte php-strip-tags

ok, wenn prep_replace nicht funktioniert, dann versuchen Sie helfen, die HTML-Tags zu entfernen.
siehe diesen Beitrag javascript-how-to-strip-html-tags

+0

Bro sehe meinen Beitrag, ich benutze 'strip_tags' – Wizard

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. – Bohemian

+0

Danke @Bohemian wird dies im Hinterkopf behalten. Ich bin neu in stackoverflow! – h4kl0rd

3

Dies alles entfernen wird - tags, ascii, Zeilenumbrüche aber reine Text:

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

Warum nicht arbeiten? Alle Lösungen funktionieren nicht .... – delive