PHP kullanarak bir HTML sayfası HTML etiketleri bir parçası kaldırmak için nasıl

3 Cevap php

Ben bir durum var. Ben bu kod parçası kullanarak php kullanarak bir html sayfası okunan $body = file_get_contents('index.htm');

Şimdi index.htm dosyasında bazen / kriterlere bağlıdır kaldırmak gerektiğini aşağıdaki gibi bir html kodu bir parçasıdır, bu yüzden bazen kaldırılır ve diğer zamanlarda değil gerekmektedir.

<td><table><tr><td></td></tr></table></td>

Nasıl tamamını kullanarak td etiketleri arasında table bölümü silerim PHP.

3 Cevap

Bu olabilir yapmak için bir yolu

$str = '<td><table><tr><td></td></tr></table></td>';
preg_match('/(<td>)(<table>.*<\/table>)(<\/td>)/',$str,$matches);

edilen dizisi

Array
(
    [0] => <td><table><tr><td></td></tr></table></td>
    [1] => <td>
    [2] => <table><tr><td></td></tr></table>
    [3] => </td>
)

yeniden kullanılabilen

 '<td></td>'

Tablo bölüm olmadan

Eğer sayfa XML olduğunu yeterince şanslı iseniz, o zaman bir DOM formu ve DOM kaldırmak olabilir. Aksi takdirde düzenli ifade sürece <table> s (hala mümkün ama daha zor bulunuyor durumda) yuvalanmış yok gibi kolay olmalıdır.

Sen table normal bir ifade yerine kullanarak 's td arasında kaldırabilirsiniz.

$html=preg_replace('/<td([^>]*)><table[^>]*>.*<\/table><\/td>/', '<td$1></td>', $html);

Eğer olarak veya niteliklere varsa bu da çalışır

Çalışır I tried it myself (RegEx Tester) ve, o da sizin için çalışır umuyoruz.