preg_replace içeride strtolower - mümkün mü?

2 Cevap

Bunun ikame bölümünde strtolower kullanmak mümkün preg_replace?

Bu çalışma değil:

preg_replace('/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org|tv|biz)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/i', '<a href="http://www.'.strtolower('$3').'" target="_blank">'.strtolower('$3').'</a>', $d);

2 Cevap

, Evet mümkündür. e değiştirici bir göz (Example #4):

preg_replace('/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org|tv|biz)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie', "'<a href=\"http://www.'.strtolower('$3').'\" target=\"_blank\">'.strtolower('$3').'</a>'", $d);

(Denenmemiş, ters bölü kaçan numarası yanlış olabilir.)

Ben e (eval) değiştirici kullanarak üzerinde preg_replace_callback () kullanarak lehine. Ben kodu temizdir ve hata için daha az yer vardır hissediyorum.