php

Penggunaan fungsi preg_match () dalam PHP

Penggunaan fungsi preg_match () dalam PHP

Ungkapan biasa adalah corak tertentu yang dapat digunakan untuk mencocokkan, mencari, dan mengganti rentetan tertentu dalam data teks. Ini adalah ciri kuat dari mana-mana bahasa pengaturcaraan. Ia digunakan terutamanya untuk melakukan pelbagai jenis pengesahan borang, seperti mengesahkan e-mel, memeriksa format telefon, mengesahkan bidang nama pengguna dan kata laluan borang log masuk, dll. Sebarang kandungan teks tertentu boleh dicari dan diganti menggunakan corak ungkapan biasa. Ia juga disebut regex atau RegExp. Jenis simbol yang berbeza digunakan untuk menentukan corak regex.

Banyak fungsi terbina dalam PHP untuk ungkapan biasa. fungsi preg_match () adalah salah satunya. Fungsi ini digunakan untuk mencocokkan corak tertentu dalam data rentetan. Bagaimana fungsi preg_match () dapat digunakan dalam PHP untuk melakukan pelbagai tugas dijelaskan dalam tutorial ini.

Sintaks:

Pre_match int atau palsu (string $ pattern, string $ subject [, array & $ match = null [, int $ flags = 0 [, int $ offset = 0]]])

Fungsi ini boleh mengambil lima hujah. Hujah pertama, corak $, adalah wajib, yang menentukan corak untuk dipadankan. Hujah kedua, subjek $, adalah wajib, dan mengandungi data rentetan di mana corak akan diterapkan. Hujah ketiga, $ sepadan, adalah pilihan dan mengembalikan tatasusunan berdasarkan padanan. Hujah keempat, $ bendera, adalah pilihan, yang mengandungi pelbagai jenis nilai bendera berdasarkan padanan. Hujah kelima, $ mengimbangi, adalah pilihan, dan boleh digunakan untuk menentukan kedudukan permulaan carian.

Contoh 1: Padankan corak dengan peka huruf besar kecil dan tidak peka huruf besar-kecil

Contoh berikut menunjukkan penggunaan fungsi preg_match () untuk memadankan rentetan dengan peka huruf besar kecil dan tidak peka huruf besar kecil. Buat fail PHP dengan skrip berikut.

Di sini, tiga corak digunakan untuk diterapkan dalam tiga fungsi preg_match (). Corak pertama, '/ Suka /', digunakan untuk memadankan rentetan dengan cara sensitif huruf. Corak kedua, '/ suka /', digunakan untuk memadankan rentetan dengan cara peka huruf besar-kecil. Corak ketiga, 'Suka / saya', digunakan untuk memadankan rentetan dengan cara tidak peka huruf besar kecil. search_pattern () fungsi didefinisikan dalam skrip untuk menggunakan fungsi preg_match () untuk mencocokkan, dan ia mencetak pesan berdasarkan nilai yang dikembalikan dari fungsi ini.

// Tentukan teks
$ text = "Saya suka PHP. Saya juga suka JavaScript.";
// Tentukan tiga jenis corak
$ pattern1 = '/ Suka /';
$ pattern2 = '/ suka /';
$ pattern3 = '/ Suka / i';
// Tentukan fungsi untuk mencari corak dalam teks
search_pattern fungsi (corak $, $ string)

jika (preg_match (corak $, rentetan $))
echo "Hasil carian: Padanan dijumpai untuk corak - corak $
";
yang lain
echo "Hasil carian: Padanan tidak dijumpai untuk corak - corak $
";

// Cetak teks asal
echo "Teks asal adalah: $ teks
";
// Panggil fungsi tiga kali untuk tiga corak
search_pattern ($ pattern1, $ teks);
search_pattern ($ pattern2, $ teks);
search_pattern ($ pattern3, $ teks);
?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan. Baris pertama menunjukkan teks di mana corak dicari. Baris kedua menunjukkan output corak pertama. Baris ketiga menunjukkan keluaran corak kedua. Baris keempat menunjukkan keluaran corak ketiga.

Contoh 2: Sahkan URL

Contoh berikut menunjukkan cara untuk mengesahkan alamat URL menggunakan fungsi preg_match (). Buat fail PHP dengan skrip berikut.

Nilai URL diberikan dalam $ url pemboleh ubah untuk ujian. '@ ^ (?: https: //)?([^ /] +) String @ i 'digunakan sebagai corak dalam fungsi preg_match () untuk memeriksa sama ada alamat URL itu sah atau tidak. Sekiranya ia sah, maka nama host dan nama domain akan dicetak, jika tidak, mesej ralat akan dicetak.

// Tentukan URL
$ url = "https: // www.linuxhint.com ";
// Tentukan corak untuk mengesahkan URL
$ corak = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Periksa URL itu sah atau tidak
jika (preg_match (corak $, $ url, $ match1))

// Cetak mesej kejayaan
echo "URL itu sah.
";
// Cetak array yang mengandungi nilai padanan
echo "Nilai array adalah:";
print_r ($ padanan1);
// Dapatkan dan cetak nilai host
$ host = $ match1 [1];
gema "
Nama hos ialah: $ host ";
// Cari nama domain dari nilai host
preg_match ('/ [^.] + \.[^.] + $ / ', $ tuan rumah, $ match2);
gema "
Nama domain ialah: $ match2 [0] ";

yang lain

// Cetak mesej ralat
echo "URL tidak sah.";

?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan. URL yang disediakan dalam skrip adalah sah. Oleh itu, output menunjukkan nilai $ match, nama host URL, dan nama domain URL.

Contoh 3: Corak carian dengan nilai bendera dan mengimbangi

Contoh berikut menunjukkan penggunaan nilai bendera dan mengimbangi dalam fungsi preg_match (). Buat fail PHP dengan skrip berikut.

Tiga corak digunakan dalam skrip untuk tiga jenis padanan. Dalam fungsi preg_match () pertama, '/ (bangla) (desh) /' digunakan sebagai corak dan nilai bendera, PREG_OFFSET_CAPTURE digunakan. Nilai-nilai $ sepadan pemboleh ubah akan mencetak berdasarkan output fungsi preg_match () pertama. Dalam fungsi preg_match () kedua, '/ (bangla) (senang) * (desh) / i', digunakan sebagai corak dan nilai bendera, PREG_UNMATCHED_AS_NULL digunakan. Sekiranya mana-mana bahagian corak tidak sepadan maka nilai NULL akan disimpan dalam array. Nilai-nilai $ sepadan pemboleh ubah akan mencetak berdasarkan output fungsi preg_match () kedua. Dalam fungsi preg_match () ketiga, '/ senang /' digunakan sebagai corak, nilai bendera, PREG_OFFSET_CAPTURE digunakan dan 3 digunakan sebagai nilai ofset. Nilai-nilai $ sepadan pemboleh ubah akan mencetak berdasarkan output fungsi preg_match () ketiga.

// Tentukan nilai teks
$ text = "Bangladesh";
// Tentukan tiga jenis corak
$ pattern1 = '/ (bangla) (desh) / i';
$ pattern2 = '/ (bangla) (gembira) * (desh) / i';
$ pattern3 = '/ gembira /';
// Menggunakan bendera PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ match, PREG_OFFSET_CAPTURE);
gema "
";
print_r ($ padanan);
gema "

";
// Menggunakan bendera PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ match, PREG_UNMATCHED_AS_NULL);
gema "
";
print_r ($ padanan);
gema "

";
// Menggunakan bendera PREG_OFFSET_CAPTURE dan nilai ofset
preg_match ($ pattern3, $ text, $ match, PREG_OFFSET_CAPTURE, 3);
gema "
";
print_r ($ padanan);
gema "
";
?>

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip dari pelayan.

Kesimpulannya

Penggunaan fungsi preg_match () telah dijelaskan dalam tutorial ini dengan menggunakan beberapa contoh. Penggunaan argumen berbeza fungsi ini juga telah ditunjukkan di sini. Pembaca akan dapat menggunakan fungsi ini dengan betul dalam skrip mereka setelah membaca tutorial ini.

Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...
Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...