2017-11-02 3 views
1

i Hyperlink mit spezifischen HTML-Klasse entfernen möchten, und den Text zu halten.,Hyperlink entfernen mit spezifischen HTML-Klasse PHP

$string = 'My content in <a href="http://google.com" class="google">Google</a> not show, but on <a href="http://bing" class="bing">Bing</a> looks good.'; 

Ich versuche, mit diesem Code, aber alle Hyperlink entfernen. Ich möchte nur den Hyperlink in "Google" entfernen.

$content = preg_replace('#<a.*?>(.*?)</a>#i', '\1', $string); 

Ich möchte, Endergebnisses so.,

$content = 'My content in Google not show, but on <a href="http://bing" class="bing">Bing</a> looks good.'; 

Bitte Hilfe. Danke.

+2

http://php.net/manual/en/function.strip-tags.php – TarangP

Antwort

2

Es entfernt alle HTML-Tags, wenn es "google" findet und behält die htlm-Tags für den Rest.

+0

Aber der Code wird andere HTML-Tag zu entfernen, zum Beispiel: Opsional

+0

Neue Bearbeitung. Es entfernt alle HTML-Tags mit Ausnahme derjenigen, die sich im "erlaubten" Bereich von strip_tags befinden. Ein neues Beispiel in $ string Variable hinzugefügt, um es selbst zu sehen – pr1nc3

+0

Gelöst! Danke ... – Opsional

0

this test Verwendung habe ich das Wort in Google, so dass sie nicht die Bing Verbindung brachte, so würde der Code jetzt geworden:

$content = preg_replace('#<a.*?>(.*?)Google</a>#i', 'Google', $string); 

Es entspricht jetzt den ganzen Link, wo es den Text ‚Google enthält ', und verwendet die Ersetzen-Funktion, um es durch nur den Text zu ersetzen.

+0

Kein Ende Trennzeichen '#' gefunden – TarangP

+0

Danke für die Antwort, Google nur Beispiel. Genau kann Google mit anderen Worten ändern. Die Zeichenfolge ist also dynamisch. – Opsional

+0

Setzen Sie Ihre Zeichenfolge mit PHP in preg_replace(). so wird es dynamisch werden. – TarangP

0

Ich versuche, diesen Code nicht für Ihre Bedürfnisse gut ist:

$content = preg_replace('#<a href=".*?Google.*?".*?>(.*?)</a>#i', '\1', $string); 

und löschte ist:

My content in Google not show, but on <a href="http://bing" class="bing">Bing</a> looks good. 
+0

"Google" auf Ihrem Code, class = "google" oder aus Text. – Opsional

0

gemischte preg_replace (mixed $ Muster, mixed $ Ersatz, vorbehaltlich mixed $ [, int $ limit = -1 [, int & $ count]]) (von php.net)

Wie Sie sehen, können Sie den vierten Parameter begrenzen und nehmen nur den ersten oder N ($ limit)

z: (N = 1)

$ content = preg_replace ('? # (*) # I', '\ 1', $ string, 1); // Wird nur das erste Spiel

zB nehmen: (N = 5)

$ content = preg_replace ('? # (*) # I', '\ 1', $ string, 5) ; // Wird die ersten fünf Übereinstimmungen nehmen