Entfernen Sie Anker aus dem Text

8

Ich muss Anchor-Tags aus einem Text entfernen und kann das nicht mit Regex zu tun scheinen.
Nur die Anker-Tags, nicht ihr Inhalt.
Zum Beispiel wird <a href="http://www.google.com/" target="_blank">google</a> zu google .

    
Lior 03.05.2011, 13:28
quelle

7 Antworten

13

Genau, es kann nicht richtig mit einem regulären Ausdruck gemacht werden.

Hier ist ein Beispiel mit DOM:

%Vor%

Wenn Änderungen am DOM vorgenommen werden, ist es wichtig, rückwärts zu gehen.

    
Yann Milin 04.05.2011, 09:26
quelle
10

Dann können Sie versuchen

%Vor%

Ich habe es online hier auf dem Rubel

versucht     
stema 03.05.2011 13:48
quelle
7

Sie suchen strip_tags() .

%Vor%     
Pekka 웃 03.05.2011 13:32
quelle
4

Diese Frage wurde bereits beantwortet, aber ich dachte, ich würde meine Lösung zu dem Mix hinzufügen. Ich mag das besser als die akzeptierte Lösung, weil es ein bisschen mehr auf den Punkt kommt.

%Vor%     
user1491929 11.11.2012 05:37
quelle
3

mit Regex:

preg_replace('/<a[^>]+>([^<]+)<\/a>/i','',$html);

    
CSᵠ 03.05.2011 13:36
quelle
0

Probieren Sie es mit:

%Vor%

Ausgabe:

%Vor%     
Toto 03.05.2011 15:01
quelle
0

Ein großer Teil der Regex hier hat mir nicht geholfen. Einige davon entfernen den Inhalt innerhalb des Ankers (was überhaupt nicht das ist, wonach OP gefragt ist) und nicht den gesamten Inhalt, einige davon passen zu einem Tag, der mit einem usw. beginnt.

Das habe ich für meine Bedürfnisse bei der Arbeit geschaffen. Wir hatten ein Problem, bei dem die Übergabe von HTML an wkhtmltopdf mit Anchor-Tags (mit vielen Datenattributen und anderen Attributen) manchmal die Erstellung der PDF-Datei verhinderte. Daher wollte ich diese entfernen, ohne den Text zu verlieren.

Regex:

  

/ & lt; /? a ([^ & gt;] *)? & gt; / ig

In PHP können Sie Folgendes tun:

%Vor%

Ausgaben:

%Vor%     
Patrick Golden 14.02.2017 20:55
quelle

Tags und Links