Belirli bir yayılma elemanının içeriğini almak için PHP regex

3 Cevap php

Biraz yardıma ihtiyacım var ... Ben biraz düzenli ifadeler geldiğinde n00b (toplam okuyun), ve PHP belirli bir HTML etiketi içinde bulunan belirli bir metin parçası bulmak için bir yazı biraz yardıma ihtiyacım var.

Kaynak dize bu gibi görünüyor:

<span lang="en">English Content</span><span lang="fr">French content</span> ... etc ...

Belirli bir dil için elemanın sadece metin ayıklamak istiyorum.

Herkes yardımcı olabilir?

3 Cevap

PHP için mevcut HTML ayrıştırıcıların bol vardır. Ben onlardan birini kontrol öneririm, (örneğin: PHP Simple HTML DOM Parser).

Regex ile HTML okumaya çalışıyorum ile ayak kendinizi çekim düşündüğünüzden çok daha kolaydır, ve sen iyice regex bilmiyorum özellikle zaman (dilek ve giriş% 100 garanti değil çok daha zor önlemek için temiz HTML).

(Kötü, çalışmıyor) html ayrıştırma için regex kullanmak gerektiğini gösterir neden örnek.

/<span lang="en">(.*)<\/span>/

Çıktısı:

English Content</span><span lang="fr">French content

Daha fazla şeyler okumak için:

Parsing: Beyond Regex

For-the-2,295,485th-time-DO-NOT-PARSE-HTML-WITH-REGULAR-EXPRESSIONS

HTML sayfalarında SQL benzeri sorgular yapmanızı sağlar bu en müthiş bir sınıf var. Bu bir göz değer olabilir:

HTML SQL

Ben bunu bir demet kullandım ve ben onu seviyorum.

Umarım ki olur ...