HTML-Entities codieren, aber HTML-Tags ignorieren - in PHP

8

Ich habe eine Zeichenfolge, die so aussehen könnte

%Vor%

Wie kann ich den Text in HTML-Entitäten konvertieren, ohne die HTML-Tags zu konvertieren?

Hinweis: Ich muss das HTML intakt halten

    
ed209 22.12.2009, 12:23
quelle

5 Antworten

6

Haftungsausschluss: Ich würde keine Entitäten codieren, außer für & lt ;, & gt; und & amp ;. Wenn Sie das wirklich wollen, tun Sie Folgendes:

%Vor%     
Evert 22.12.2009 12:36
quelle
1

Das Problem, dem Sie gegenüberstehen, ist, dass Sie unter Umständen bereits ' < ' und ' > ' in Ihrem Text codiert haben, also müssen Sie sie nach der Konvertierung herausfiltern.

Dies ist der Antwort von Evert ähnlich, fügt jedoch einen weiteren Schritt hinzu, um Inhalte wie 1 < 2 in Ihrem Markup zuzulassen:

%Vor%     
Boldewyn 22.12.2009 12:41
quelle
1

Eine gute Antwort war Beitrag von Pascal MARTIN

Siehe SO-Thema

Um fortzufahren, können Sie diesen Codeabschnitt verwenden, um eine Liste von Korrespondenzen character => entity :

abzurufen %Vor%     
JoDev 03.09.2013 08:02
quelle
0

Ich habe vorher noch nicht genug verwendet, aber es scheint eine etwas robustere Version von urlencode zu sein (die ich oft benutze). Vielleicht möchten Sie versuchen:

htmlentities(strip_tags($str,ENT_COMPAT),'UTF-8',false);

Genau wie ein kleines Nugget, wenn Sie <br> als Standard-Carrage Returns beibehalten möchten, können Sie dies tun:

htmlentities(strip_tags(str_replace("<br>","\n",$str,ENT_COMPAT)),'UTF-8',false);

Ich weiß, dass ich das manchmal gerne mache.

Viel Glück.

    
Andy Does Tech 22.12.2009 12:34
quelle
-1

Wenn Sie nur Text konvertieren möchten, versuchen Sie Folgendes:

%Vor%     
Sarfraz 22.12.2009 12:33
quelle

Tags und Links