Ben dosya paylaşım sitelerine bağlantılar süzmek için birlikte Powered için bir plug-in koymak için çalışıyorum. Ben sık sık duymak eminim ama, ben yalnız Regexes izin php bir newb değilim.
Temelde, ben birlikte bir regex koymak ve bu etki vardır ve onlar izin verilmez bir mesaj ile tüm bağlantısını değiştirmek herhangi adresler bulmak için bir preg_replace kullanmaya çalışıyorum. Ben düz metin olarak yayınlanan veya [KOD] bb etiketleri içine, o köprü olsun bağlantıyı bulmak isterdim.
Regex gelince, ben aşağıdaki ile URL'LER bulmak için gerekir, ben düşünüyorum:
- Http veya bir çapa etiketi ile başlar. I [KODU] etiketleri URLS düz metin URL'ler gibi aynı işlenmiş olabilir ve yedek sonra [KOD] etiketi içinde biter o gayet iyi olduğuna inanıyorum.
- Domain / kelimenin önce herhangi bir herhangi bir sayıda karakter içerebilir
- Orta alanı bir yere sahiptir
- Etki sonra herhangi bir karakter herhangi bir sayıda içerebilir
- Gibi uzantıları bir dizi ile sona erer (| htm | html rar | zip | 001) veya bir kapanış etiketi çapa.
Ben (daha fazla değil ise) en sayılar 2 ve 4 beni takılmadan bir his var. Burada benzer bir soru bulundu ve kodu biraz (ben gerçekten bunu anlamadı bile) ayrı almaya çalıştı. Ben şimdi işe yarayabileceğini düşündüm ki bu var, ama öyle değil:
<?php
$filterthese = array('domain1', 'domain2', 'domain3');
$replacement = 'LINKS HAVE BEEN FILTERED MESSAGE';
$regex = array('!^http+([a-z0-9-]+\.)*$filterthese+([a-z0-9-]+\.)*(html|htm|rar|zip|001)$!',
'!^<a+([a-z0-9-]+\.)*$filterthese+([a-z0-9-]+\.)*</a>$!');
$this->post['message'] = preg_replace($regex, $replacement, $this->post['message']);
?>
Ben burada yolu kapalı baz Ben bir his var, ve ben tamamen php yalnız Regexes izin anlamıyorum itiraf. Ben sadece o iş yapmak için nasıl, bu daha iyi yapmak konusunda herhangi Önerilere açığım, ya da (ben biraz okudum ve ben devam edeceğim gerçi) bağlantıları RTFM için.
Teşekkürler.