Fonksiyonu gibi mysql PHP analog

4 Cevap php

Bir yumru soru, ancak php mysql'in GİBİ fonksiyonu analog vardır herhalde?

Bu yüzden, örneğin, :

like('goo*','google.com');//is true
like('*gl*','google.com');//true
like('google.com','google.com')//also true

Ben regex rullez biliyorum, ama bu ulaşmak için herhangi bir çözüm bilmiyorum

4 Cevap

Için ilk kullanım strpos:

like('goo*','google.com');      -->  strpos('goo','google.com') === 0

Bir sonraki, kullanabilirsiniz strpos:

like('*gl*','google.com');      -->  strpos('gl', 'google.com') !== false;

Sadece kullanabilirsiniz sonraki eşittir:

like('google.com','google.com') -->  'google.com' == 'google.com'

Tabii ki, hepsi için regex kullanabilirsiniz:

like('goo*','google.com');      -->  preg_match('#^goo.*$#','google.com') 
like('*gl*','google.com');      -->  preg_match('#^.*gl.*$#', 'google.com');
like('google.com','google.com') -->  preg_match('#^google\.com$#', 'google.com')

Edit,, regex hakkında desen dönüştürmek başlangıcında bir ^ yerleştirin ve bir $ sonunda, daha sonra yerine * .* ve . s kaçış ile.

Bu senaryolar ile gerçekleştirilebilir strpos

Eğer eşleştirmek istediğiniz dizeleri bir dizin aslında dosyaları, glob fonksiyonunu kontrol: http://php.net/manual/en/function.glob.php