Sadece web sitesi için düzenli ifade

2 Cevap php

Ben Düzenli İfadeler yeniyim.

Bazı metin sadece web sitesi bulmak gerekir ve ben gibi dizeleri bulmak mümkün bir düzenli ifade için arıyorum:

www.my.home, http://my.site.it

Ama bu normal bir ifade gibi dizeleri bulmak gerekir:

address@my.site.it or if the website is already inside html tag

<a href="http://www.my.site.com/">
  <span style="font-style: normal;">www.mambo-test.org</span>
</a>

Ben bu biriyle çalıştı:

\ B ((https? :/ / [^] )|(www.[^ ]))

ama aynı zamanda href ve etiket arasındaki et bulur:

<a href="http://www.my.site.com/">
  <span style="font-style: normal;">www.mambo-test.org</span>
</a>

ve ben bu durumda dışında nasıl bilmiyorum.

2 Cevap

Ne yapmaya çalışıyorsun denir parsing HTML code via regular expressions.

Her şeyden önce, ben senin ağrı hissedebilirsiniz.

İkinci olarak, here ayrıntılı olarak açıklanmıştır why you shouldn't do this.

Müşterileriniz bir zengin metin editörü web bağlantıları ekleme ve bazen düzgün yapmak ve bazen yok Üçüncüsü, eğer iyi ... bu kesinlikle kötü bir uygulamadır ve bu insanlar eğitilmeli. Bir zengin metin editörü "link" butonuna tıklayın tembel ise, onların metin, basit metin olarak değil, bir bağlantı olarak kabul edilecektir. Onlar yakında anlayacaksınız.

Forth, which rich text editor are you using? TinyMCE sen / post işlemi kolayca kullanıcı tarafından eklenen metin önceden izin özellikleri ve eklentileri bir bütün set sunuyor. Yani PHP bu metin düzenlemek için çalışırken daha kolay olabilir.

Hala bunu yapmak gerekiyorsa Beşinci, size this tutorial on how to parse HTML to find links bir göz atmak isteyebilirsiniz.

Belki this sorunu çözer.