PHP bir metin dizesinin silme kısmı

4 Cevap php

Ben bir form inşa ettik, ancak formun bazı satırlar potansiyel varsayılan değerler, boş iade edilebilir. Ben formu çıkışını arıyor ve sonra gerekli değildir biliyorum biraz silinmesinin bir yol bulmaya çalışıyorum - gibi görünüyor ki:

<tr bgcolor="#FFFFFF">
<td>2E</td>
<td id="8003">-800</td>
</tr>

I've used str_replace() effectively on a couple of bits, but my major problem is that bgcolor="#FFFFFF" can CHANGE to different hex values and also

Sanırım her türlü sonuç için str_replace () yazabilirsiniz, ama böyle bir şey için bir preg_replace çözüm var mı? Oldukça karmaşık bir düzenli ifade olması gerekir.

4 Cevap

Onaltılık dizeleri maç için bir regex aslında oldukça kolaydır:

/[0-9a-fA-F]+/

Muhtemelen istenmeyen düğümleri kaldırmak için bir HTML ayrıştırıcı kullanmanız gerektiğini duyarsınız - belki gerekir, ama eğer know giriş dizesi belki o zaman, gibi olacak ne.

Sizin örnekte o ilk satırı eşleştirmek için, bu regex gerekir:

preg_replace("/<tr bgcolor=\"#[0-9a-fA-F]+\">/", '', $string)

Eğer string değiştirme ile daha sonra değiştirmek için gerek kalmadan php doğru html oluşturmak değil misiniz?

Belki bazı IF ELSE deyimi ile.

Bu daha iyi bir yaklaşım gibi geliyor bana.

Sadece bunu göstermek için çalışırken olsun önce alan kodu "boş" olup olmadığını kontrol edemez? veya çıkışı olmaz bazı mantık koymak o boş ise, çıkış yok?