PHP'de preg_match() İşlevinin Kullanımı

Use Preg_match Function Php



Normal ifade, metin verilerindeki herhangi bir belirli dizeyi eşleştirmek, aramak ve değiştirmek için kullanılabilen belirli bir kalıptır. Herhangi bir programlama dilinin güçlü bir özelliğidir. Esas olarak, e-postayı doğrulama, telefon biçimini kontrol etme, oturum açma formunun kullanıcı adı ve şifre alanlarını doğrulama vb. gibi farklı form doğrulama türlerini gerçekleştirmek için kullanılır. Metnin belirli herhangi bir içeriği normal bir ifade kullanılarak aranabilir ve değiştirilebilir. Desen. Ayrıca regex veya RegExp olarak da adlandırılır. Normal ifade modelini tanımlamak için farklı sembol türleri kullanılır.

Düzenli ifade için PHP'de birçok yerleşik işlev vardır. preg_match() işlevi bunlardan biridir. Bu işlev, dize verilerinde belirli bir kalıbı eşleştirmek için kullanılır. PHP'de preg_match() işlevinin çeşitli görevleri gerçekleştirmek için nasıl kullanılabileceği bu öğreticide açıklanmıştır.







Sözdizimi:

int veyaYANLIŞ preg_match (sicim$ desen,sicim$konu [, dizi &$eşleşme = boş [,int$bayraklar = 0 [,int$ denkleştirme = 0]]])

Bu fonksiyon beş argüman alabilir. İlk argüman, $ desen , zorunludur ve eşleştirme için kalıbı tanımlar. İkinci argüman, $konu , zorunludur ve kalıbın uygulanacağı dize verilerini içerir. Üçüncü argüman, $eşleşme , isteğe bağlıdır ve eşleşmeye göre bir dizi döndürür. Dördüncü argüman, $bayraklar , isteğe bağlıdır ve eşleşmeye bağlı olarak farklı türde bayrak değerleri içerir. Beşinci argüman, $ denkleştirme , isteğe bağlıdır ve aramanın başlangıç ​​konumunu tanımlamak için kullanılabilir.



Örnek 1: Deseni büyük/küçük harfe duyarlı ve büyük/küçük harfe duyarlı olmayan bir şekilde eşleştirin

Aşağıdaki örnek, dizeyi büyük/küçük harfe duyarlı ve büyük/küçük harfe duyarlı olmayan bir şekilde eşleştirmek için preg_match() işlevinin kullanımını gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.



Burada, üç preg_match() işlevinde uygulamak için üç model kullanılır. İlk desen, '/Beğenmek/', dizeyi büyük/küçük harfe duyarlı bir şekilde eşleştirmek için kullanılır. İkinci desen, '/sevmek/' , dizeyi büyük/küçük harfe duyarlı bir şekilde eşleştirmek için kullanılır. Üçüncü desen, 'Benim gibi' , dizeyi büyük/küçük harfe duyarsız bir şekilde eşleştirmek için kullanılır. arama_pattern() işlevi komut dosyasında eşleştirme için preg_match() işlevini kullanmak üzere tanımlanmıştır ve bu işlevin döndürülen değerine göre mesajı yazdırır.







// Metni tanımla

$metin = 'PHP'yi seviyorum. JavaScript'i de seviyorum.';

//Üç tip desen tanımlayın

$desen1 = '/Beğenmek/';

$desen2 = '/sevmek/';

$desen3 = '/Benim gibi';

//Metin içindeki deseni aramak için fonksiyon tanımlayın

işlevsearch_pattern($ desen, $dize)

{

Eğer( preg_match ($ desen, $dize))

dışarı attı 'Arama sonuçları: Kalıp için eşleşme bulundu -$ desen
'
;

Başka

dışarı attı 'Arama sonuçları: Kalıp için eşleşme bulunamadı -$ desen
'
;

}

//Orijinal metni yazdır

dışarı attı 'Orijinal metin: $metin
'
;

//Üç desen için işlevi üç kez çağırın

search_pattern($desen1, $metin);

search_pattern($desen2, $metin);

search_pattern($desen3, $metin);

?>

Çıktı :

Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir. İlk satır, kalıpların arandığı metni gösterir. İkinci satır, ilk kalıbın çıktısını gösterir. Üçüncü satır, ikinci kalıbın çıktısını gösterir. Dördüncü satır, üçüncü kalıbın çıktısını gösterir.



Örnek 2: URL'yi doğrulayın

Aşağıdaki örnek, preg_match() işlevini kullanarak URL adresini doğrulamanın yolunu gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.

Test için $url değişkenine bir URL değeri atanır. ‘@^(?:https://)?([^/]+)@i’ dizesi, URL adresinin geçerli olup olmadığını kontrol etmek için preg_match() işlevinde bir kalıp olarak kullanılır. Geçerliyse, ana bilgisayar adı ve alan adı yazdırılır, aksi takdirde hata mesajı yazdırılır.



//URL'yi tanımlayın

$url = 'https://www.linuxhint.com';

//URL'yi doğrulamak için kalıbı tanımlayın

$ desen ='@^(?:https://)?([^/]+)@i';

//URL'nin geçerli olup olmadığını kontrol edin

Eğer( preg_match ($ desen, $url, $eşleşme1))

{

//Başarı mesajını yazdır

dışarı attı 'URL geçerli.
'
;

//Eşleşme değerlerini içeren diziyi yazdır

dışarı attı 'Dizin değerleri:';

print_r ($eşleşme1);

// Ana bilgisayar değerini al ve yazdır

$ana bilgisayar = $eşleşme1[1];

dışarı attı '
Ana bilgisayar adı:$ana bilgisayar'
;

// Ana bilgisayar değerinden alan adını arayın

preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $ana bilgisayar, $eşleşme2);

dışarı attı '
Alan adı:{$eşleşme2[0]}'
;

}

Başka

{

//Hata mesajını yazdır

dışarı attı 'Geçersiz URL.';

}

?>

Çıktı :

Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Komut dosyasında sağlanan URL geçerlidir. Böylece çıktı, $matches değerlerini, URL'nin ana bilgisayar adını ve URL'nin alan adını gösterir.

Örnek 3: Bayrak ve ofset değerleriyle desen arama

Aşağıdaki örnek, preg_match() işlevinde bayrak ve ofset değerlerinin kullanımlarını gösterir. Aşağıdaki komut dosyasıyla bir PHP dosyası oluşturun.

Üç tür eşleştirme için komut dosyasında üç desen kullanılır. İlk preg_match() işlevinde, kalıp olarak '/(bangla)(desh)/' kullanılır ve bayrak değeri PREG_OFFSET_CAPTURE kullanılır. değerleri $eşleşme değişken, ilk preg_match() işlevinin çıktısına göre yazdırılacaktır. İkinci preg_match() işlevinde, '/(bangla)(glad)*(desh)/i', kalıp olarak kullanılır ve bayrak değeri PREG_UNMATCHED_AS_NULL kullanılır. Desenin herhangi bir kısmı eşleşmezse, dizide bir NULL değeri depolanır. değerleri $eşleşme değişken, ikinci preg_match() işlevinin çıktısına göre yazdırılacaktır. Üçüncü preg_match() işlevinde, kalıp olarak '/glad/' kullanılır, bayrak değeri, PREG_OFFSET_CAPTURE kullanılır ve ofset değeri olarak 3 kullanılır. değerleri $eşleşme değişken, üçüncü preg_match() işlevinin çıktısına göre yazdırılacaktır.



//Metin değerini tanımla

$metin = 'Bangladeş';

//Üç tip desen tanımlayın

$desen1 = '/ (bangla) (desh) / ben';

$desen2 = '/ (bangla) (memnun) * (desh) / ben';

$desen3 = '/memnun/';


//PRG_OFFSET_CAPTURE bayrağını kullanma

preg_match ($desen1, $metin, $eşleşme,PREG_OFFSET_CAPTURE);

dışarı attı '
';  

print_r ($matches);

echo '

'
;

//PRG_UNMATCHED_AS_NULL bayrağını kullanma

preg_match ($desen2, $metin, $eşleşme,PREG_UNMATCHED_AS_NULL);

dışarı attı '
';  

print_r ($matches);

echo '

'
;

//PREG_OFFSET_CAPTURE bayrağı ve ofset değeri kullanılıyor

preg_match ($desen3, $metin, $eşleşme,PREG_OFFSET_CAPTURE, 3);

dışarı attı '
';  

print_r ($matches);

echo '
'
;

?>

Çıktı :

Komut dosyasını sunucudan çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Çözüm

preg_match() işlevinin kullanımları bu öğreticide birden çok örnek kullanılarak açıklanmıştır. Bu işlevin farklı argümanlarının kullanımları da burada gösterilmiştir. Okuyucular bu öğreticiyi okuduktan sonra bu işlevi komut dosyalarında düzgün bir şekilde kullanabilecekler.