Linkler bulun ve HTML onları çıkarın

5 Cevap php

Nasıl HTML bağlantıları için bakmak ve onları kaldırabilirsiniz?

$html = '<p><a href="javascript:doThis('Test Title 1')">Test Title 1</a></p>';
$html .= '<p><a href="javascript:doThis('Testi Başlığı 2')">Testi Başlığı 2</a></p>';
$html .= '<p><a href="javascript:doThis('Test Title 3')">Test Title 3</a></p>';

$match = '<a href="javascript:doThis('Testi Başlığı 2')">';

Ben demir kaldırmak ancak metnini görüntülemek için istiyorum. aşağıya bakın.

Test Title 1

Testi Başlığı 2

Test Title 3

Ben daha önce Düzenli İfadeler hiç kullanmadım, ama belki ben de bunu önleyebilirsiniz. Im net değilse bana bildirin.

Teşekkürler

Markos

EDIT: onun değil bir istemci tarafı şey. Bunun için javascript kullanmak olamaz. Ben özel bir CMS ve bir veritabanında saklanan HTML düzenlemek istiyorum.

5 Cevap

Simple HTML DOM hile yok eğer görebiliyordu.

Sen basit bir şey deneyebilirsiniz:

echo strip_tags($html, '<p>');

Bu

dışında tüm etiketleri şeritler

Eğer gerçekten regexpi isterseniz:

echo preg_replace('=</?a(\s[^>]*)?>=ims', '', $html);

EDIT:

: Etiketi VE Çevre etiketleri (kod dağınık alır ve kırık (X) HTML ile çalışmaz) - Bir silme

echo preg_replace('=<([a-z]+)[^>]*>\s*<a(\s[^>]*)?>(.*?)</a>\s*</\\1>=ims', '$3', $html);

Senin sorunun bu karmaşık ise Howerwer, ben denemenizi öneririz xpath.

http://www.crummy.com/software/BeautifulSoup/ (Python HTML ayrıştırma / manipülasyon API) - You Are Beautiful Soup ile bazı sevinç olabilir

sed -i -e 's/<a.*<\/a>//g' filename.html

HTML hack için düzenli ifadeler kullanarak bir ... şüpheli önerme, ama sadece pratikte işe yarayabilecek unutmayın ;-)

Sen kullanabilirsiniz

var foo = document.getElementsByTagName('a');

tüm bağlantı etiketleri almak için. Burada normal ifadeler için gerek yok ...

EDIT: Ben sadece okumak için öğrenme yaşıyorum ... PHP'nin DOM veya XML yetenekleri ile gidin ;). Bu, bu kullanımı oldukça kolay olmalıdır.