Ekspresi reguler adalah alat yang sangat berguna bagi pengembang. Dengan bantuan mereka, Anda dapat menemukan, menentukan, atau mengganti teks, kata, atau karakter lainnya. Artikel hari ini telah mengumpulkan 15 ekspresi reguler paling berguna yang dibutuhkan pengembang web mana pun.
Pengantar Ekspresi Reguler
Banyak pengembang pemula merasa ekspresi reguler sangat sulit untuk dipahami dan digunakan. Faktanya, semuanya tidak serumit kelihatannya. Sebelum kita melompat langsung ke ekspresi reguler, dengan kode yang berguna dan serbaguna, mari kita lihat dasar-dasarnya:
Sintaks Ekspresi Reguler
Ekspresi reguler | Cara |
foo | String "foo" |
^ foo | Baris dimulai dengan "foo" |
foo $ | Garis diakhiri dengan "foo" |
^ foo $ | "Foo" hanya muncul sekali per baris |
a, b, atau c | |
karakter huruf kecil apa pun | |
[^ A-Z] | karakter non-huruf besar apa pun |
(gif | jpg) | Berarti "gif" dan "jpeg" |
+ | Satu atau lebih karakter huruf kecil |
Semua digit, titik, atau tanda minus | |
^{1,}$ | Kata apa saja, setidaknya satu huruf, angka atau _ |
()() | wy, wz, xy, atau xz |
(^ A-Za-z0-9) | Karakter apa pun (bukan angka atau huruf) |
({3}|{4}) | Berarti tiga huruf atau 4 angka |
Fungsi PHP untuk ekspresi reguler
Fungsi | Deskripsi |
preg_match () | Fungsi preg_match () mencari string sesuai dengan pola yang diberikan, mengembalikan nilai true jika string ditemukan dan salah, jika tidak |
preg_match_all () | Fungsi preg_match_all () menemukan semua kemunculan string berpola |
preg_replace () | Fungsi preg_replace () bekerja dengan cara yang sama seperti ereg_replace (), kecuali bahwa ekspresi reguler dapat digunakan baik untuk menentukan pola pencarian dan untuk string untuk menggantikan nilai yang ditemukan. |
preg_split () | Fungsi preg_split () sama dengan split (), kecuali ekspresi reguler dapat digunakan sebagai parameter untuk pola pencarian. |
preg_grep () | Fungsi preg_grep () mencari semua elemen dari larik input, mengembalikan semua elemen yang cocok dengan pola ekspresi reguler. |
preg_quote () | Mengabaikan karakter ekspresi reguler |
Pemeriksaan nama domain
Memeriksa apakah string adalah nama domain yang benar
$ url \u003d "http://komunitasweb.com/"; if (preg_match ("/^(httpi\u003ehttpsi\u003eftp)://(*(?:.*)+):?(d+)?/?/i", $ url)) (echo "Url Anda baik-baik saja . ";) else (echo" URL salah. ";)
Penyorotan kata dalam teks
Ini adalah ekspresi reguler yang sangat berguna, Anda dapat menggunakannya untuk menemukan kata yang diinginkan dan menyorotnya. Sangat berguna untuk menampilkan hasil pencarian.
$ text \u003d "Contoh kalimat dari KomunitasWeb, regex menjadi populer di pemrograman web. Sekarang kita belajar regex. Menurut wikipedia, Regular Expression (disingkat regex atau regexp, dengan bentuk jamak regexes, regexps, atau regexen) ditulis secara formal bahasa yang dapat diinterpretasikan oleh pemroses ekspresi reguler "; $ text \u003d preg_replace ("/ b (regex) b / i", " 1", $ text); echo $ text;
Menyoroti hasil pencarian di blog WordPress
Seperti yang disebutkan di contoh sebelumnya, contoh kode ini berguna untuk hasil pencarian dan ada cara yang bagus untuk mengimplementasikan fitur ini di blog wordpress.
Buka file search.php Anda dan temukan fungsi the_title (). Gantilah dengan kode berikut:
Gema $ judul;
Sekarang, di atas baris ini, tambahkan kode ini:
\0", $ title);?\u003e
Simpan file search.php, dan buka style.css. Tambahkan baris berikut:
Strong.search-excerpt (background: yellow;)
Mengambil semua gambar dari dokumen HTML
Jika Anda perlu mendapatkan semua gambar dari halaman web, kode ini harus ada di sana. Anda dapat dengan mudah membuat pengunggah gambar menggunakan fitur cURL
$ gambar \u003d larik (); preg_match_all ("/ (img | src) \u003d (" | \\ ") [^" \\ "\u003e] + / i", $ data, $ media); tidak disetel ($ data); $ data \u003d preg_replace ("/ (img | src) (" | \\ "| \u003d" | \u003d \\ ") (. *) / i", "$ 3", $ media); foreach ($ data as $ url) ($ info \u003d pathinfo ($ url); if (isset ($ info ["extension"])) (if (($ info ["extension"] \u003d\u003d "jpg") || ($ info ["extension"] \u003d\u003d "jpeg") || ($ info ["extension"] \u003d\u003d "gif") || ($ info ["extension"] \u003d\u003d "png")) array_push ($ gambar, $ url);))
Hapus kata-kata duplikat (tidak peka huruf besar-kecil)
Saat mengetik, apakah kata-kata sering diulang? Ekspresi reguler ini akan membantu.
$ text \u003d preg_replace ("/ s (w + s) 1 / i", "$ 1", $ text);
Menghapus tanda baca duplikat
Sama, hanya untuk tanda baca. Ucapkan selamat tinggal pada koma ganda.
$ text \u003d preg_replace ("/.+/ i", ".", $ text);
Telusuri tag XML / HTML
Ini adalah fungsi sederhana yang membutuhkan dua argumen. Yang pertama adalah tag yang perlu Anda temukan, dan yang kedua adalah variabel yang berisi XML atau HTML. Sekali lagi, fungsi ini sangat nyaman digunakan dengan cURL.
Fungsi get_tag ($ tag, $ xml) ($ tag \u003d preg_quote ($ tag); preg_match_all ("(<".$tag."[^>]*>(.*?)".$tag.">. ")", $ xml, $ pertandingan, PREG_PATTERN_ORDER); mengembalikan $ pertandingan; )
Menemukan tag XHTML / XML dengan nilai atribut tertentu
Fungsi ini sangat mirip dengan yang sebelumnya, hanya saja Anda dapat memberikan atribut yang diinginkan pada tag. Misalnya, Anda dapat dengan mudah menemukannya
Fungsi get_tag ($ attr, $ value, $ xml, $ tag \u003d null) (if (is_null ($ tag)) $ tag \u003d "\\ w +"; else $ tag \u003d preg_quote ($ tag); $ attr \u003d preg_quote ($ attr); $ nilai \u003d preg_quote ($ nilai); $ tag_regex \u003d "/<(".$tag.")[^>] * $ attr \\ s * \u003d \\ s * "." (["\\"]) $ value \\\\ 2 [^\u003e] *\u003e (. *?)<\/\\1>/ "preg_match_all ($ tag_regex, $ xml, $ kecocokan, PREG_PATTERN_ORDER); kembalikan $ kecocokan;)
Menemukan Nilai Warna Heksadesimal
Alat berguna lainnya untuk pengembang web! Ini memungkinkan Anda untuk menemukan / memeriksa nilai warna heksadesimal.
$ string \u003d "# 555555"; if (preg_match ("/ ^ # (? :(? :( 3)) (1,2)) $ / i", $ string)) (echo "contoh 6 berhasil.";)
Cari judul artikel
Potongan kode ini akan menemukan dan menampilkan teks di dalam tag
$ fp \u003d fopen ("http://www.catswhocode.com/blog", "r"); while (! feof ($ fp)) ($ page. \u003d fgets ($ fp, 4096);) $ titre \u003d eregi ("
Mengurai Log Apache
Sebagian besar situs berjalan di server web Apache yang terkenal. Jika situs Anda adalah salah satunya, mengapa tidak menggunakan PHP dan ekspresi reguler untuk mengurai log Apache?
// Log: Server web Apache // Hanya klik yang berhasil ke file HTML. Berguna untuk menghitung jumlah tampilan halaman. "^ ((? # IP klien atau nama domain) S +) s + ((? # otentikasi dasar) S + s + S +) s + [((? # tanggal dan waktu) [^]] +)] s +" (?: DAPATKAN | POSTING | KEPALA) ((? #File) / [^? "] +?. Html?) ?? ((? # Parameter) [^?"] +)? HTTP / + "s + (? # Kode status) 200s + ((? # Byte ditransfer) [- 0-9] +) s +" ((? # Referrer) [^ "] *)" s + "((? # Agen pengguna ) [^ "] *)" $ "// Log: Apache web server // 404 error only" ^ ((? # IP Klien atau nama domain) S +) s + ((? # Otentikasi dasar) S + s + S +) s + [((? # date and time) [^]] +)] s + "(?: GET | POST | HEAD) ((? #file) [^?"] +) ?? ((? # parameter) [ ^? "] +)? HTTP / + "s + (? # Kode status) 404s + ((? # Byte ditransfer) [- 0-9] +) s +" ((? # Referrer) [^ "] *)" s + "((? # Agen pengguna ) [^ "] *)" $ "
Mengganti tanda kutip ganda dengan tanda kutip cerdas
Jika Anda seorang pencinta tipografi, Anda akan menyukai ekspresi reguler yang menggantikan tanda kutip ganda reguler dengan kutipan pintar. Ekspresi reguler serupa digunakan oleh wordpress di konten halaman.
Preg_replace ("B" b ([^ "x84x93x94rn] +) b" B ","? 1? ", $ Teks);
Pemeriksaan kata sandi yang rumit
Regex ini akan memastikan bahwa setidaknya enam karakter, angka, tanda hubung, dan garis bawah dimasukkan ke dalam kotak teks.
Kotak teks harus berisi setidaknya satu huruf besar, satu huruf kecil, dan satu angka.
"A (? \u003d [-_ a-zA-Z0-9] *?) (? \u003d [-_ a-zA-Z0-9] *?) (? \u003d [-_ a-zA-Z0-9] *?) [-_a-zA-Z0-9] (6,) z "
WordPress: Menggunakan Ekspresi Reguler untuk Mendapatkan Gambar dari Posting
Karena banyak dari Anda adalah pengguna WordPress, Anda mungkin memerlukan kode yang memungkinkan Anda mendapatkan semua gambar dari teks artikel dan menampilkannya.
Untuk menggunakan kode ini, cukup tempelkan ke file mana saja di tema Anda.
post_content; $ szSearchPattern \u003d "~ ] * /\u003e ~ "; // Jalankan preg_match_all untuk mengambil semua gambar dan menyimpan hasilnya di $ aPics preg_match_all ($ szSearchPattern, $ szPostContent, $ aPics); // Periksa untuk melihat apakah kita memiliki setidaknya 1 gambar $ iNumberOfPics \u003d count ($ aPics); if ($ iNumberOfPics\u003e 0) (// Sekarang di sini Anda akan melakukan apa pun yang perlu Anda lakukan dengan gambar // Untuk contoh ini gambar hanya ditampilkan untuk ($ i \u003d 0; $ i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>
Menghasilkan emotikon otomatis
Fitur lain yang digunakan pada wordpress adalah mengganti emoticon dengan gambar smiley secara otomatis.
$ texte \u003d "Teks dengan smiley :-)"; echo str_replace (":-)", " ", $ texte);
Pembaruan terakhir pada 27 November 2019 07:10:59 (UTC / GMT +8 jam)
PHP membuka dan menutup sintaks Tag
Ada empat pasang tag pembuka dan penutup berbeda yang dapat digunakan di php. Berikut adalah daftar tag.
- Sintaks default
- Tag terbuka pendek
- Hilangkan tag penutup PHP di akhir file
Sintaks default
Sintaks default dimulai dengan " php" and ends with "?>".
Contoh:
Tag terbuka pendek
Tag pendek dimulai dengan "" and ends with "?>". Tag gaya pendek hanya tersedia jika diaktifkan dalam file konfigurasi php.ini di server.
Contoh:
echo "PHP example with short-tags"; ?>
Hilangkan tag penutup PHP di akhir file
Direkomendasikan bahwa tag penutup PHP dihilangkan dalam file yang hanya berisi kode PHP sehingga kemunculan spasi kosong atau baris baru yang tidak disengaja ditambahkan setelah tag penutup PHP, yang dapat memulai buffering keluaran yang menyebabkan efek tidak beralasan dapat dihindari.
Contoh:
Pemisahan Pernyataan PHP
Dalam PHP, pernyataan diakhiri dengan titik koma (;) seperti C atau Perl. Tag penutup dari sebuah blok kode PHP secara otomatis menyiratkan titik koma, tidak perlu ada titik koma yang mengakhiri baris terakhir dari blok PHP.
Aturan untuk pemisahan pernyataan
- titik koma
- DAN / ATAU
- tag penutup PHP
Kode yang Valid
Dalam contoh di atas, ada tanda titik koma (;) dan tag penutup PHP.
Dalam contoh di atas, tidak ada titik koma (;) setelah instruksi terakhir tetapi ada tag penutup PHP.
Dalam contoh di atas, ada tanda titik koma (;) pada instruksi terakhir tetapi tidak ada tag penutup PHP.
Sensitivitas Kasus PHP
Dalam PHP fungsi yang ditentukan pengguna, kelas, kata kunci bahasa inti (misalnya if, else, while, echo, dll.) Tidak peka huruf besar / kecil. Oleh karena itu, tiga pernyataan gema dalam contoh berikut ini sama.
Contoh 1
"); ECHO (" Kami sedang mempelajari sensitivitas huruf PHP
"); EcHo (" Kami sedang mempelajari sensitivitas huruf PHP
");
?>
Kami mempelajari sensitivitas huruf PHP Kami sedang mempelajari sensitivitas huruf PHP Kami sedang mempelajari sensitivitas huruf PHP
Di sisi lain, semua variabel peka huruf besar kecil.
Perhatikan contoh berikut. Hanya pernyataan pertama yang menampilkan nilai sebagai $ jumlah karena $ jumlah, $ AMOUNT, $ amoUNT adalah tiga variabel berbeda.
Contoh - 2
"); echo (" Jumlahnya adalah: $ AMOUNT
"); echo (" Jumlahnya adalah: $ amoUNT
");
?>
Jumlahnya adalah: 200 Jumlahnya adalah: Jumlahnya adalah:
Ketidakpekaan spasi putih PHP
Secara umum, spasi tidak terlihat di layar, termasuk spasi, tab, dan karakter akhir baris, mis. kereta kembali. Dalam PHP whitespace tidak menjadi masalah dalam pengkodean. Anda dapat memecah satu baris pernyataan menjadi sejumlah baris atau sejumlah pernyataan terpisah bersama-sama dalam satu baris.
Dua contoh berikut ini sama:
Contoh:
"; echo" Kelasnya adalah: $ class dan Roll No. adalah $ roll_no ";) student_info (" David Rayy "," V ", 12)?\u003e
Contoh: Ketidaksensitifan spasi putih tingkat lanjut
"; echo" Kelasnya adalah: $ class dan Roll No. adalah $ roll_no ";) student_info (" David Rayy "," V ", 12)?\u003e
Nama siswa: David Rayy. Kelasnya: V dan No. Roll. adalah 12
Contoh: Ketidakpekaan spasi dengan tab dan spasi
Dalam contoh berikut, spasi dan tab digunakan dalam operasi numerik, tetapi dalam kedua kasus, $ xyz mengembalikan nilai yang sama.
"; // tab dan spasi $ xyz \u003d 11 + 12; echo $ xyz;?\u003e
PHP: Satu baris dan beberapa baris Komentar
Komentar satu baris
PHP mendukung dua cara berbeda untuk berkomentar.
# Ini adalah komentar satu baris.
// Ini adalah cara lain untuk berkomentar satu baris.
Contoh:
Beberapa baris komentar
PHP mendukung "C", gaya komentar. Komentar dimulai dengan pasangan karakter / * dan diakhiri dengan pasangan karakter * /.
/ * Ini adalah pengujian beberapa komentar,
dan baris ini akan diabaikan
pada saat eksekusi * /
Contoh:
Komentar beberapa baris tidak dapat disarangkan
Script PHP Pertama
Berikut ini script PHP pertama yang akan menampilkan "Hello World ..." di web browser.
& lt? php echo "Halo Dunia ..."; ?\u003e
Tag memberi tahu server web untuk memperlakukan semua yang ada di dalam tag sebagai kode PHP untuk dijalankan. Kodenya sangat sederhana. Ia menggunakan fungsi PHP dalam "echo" untuk menampilkan teks "Hello World ..." di halaman web. Segala sesuatu di luar tag ini dikirim langsung ke browser.
Presentasi bergambar
Menggabungkan PHP dan HTML
Sintaks PHP hanya berlaku dalam tag PHP.
PHP dapat disematkan dalam HTML dan ditempatkan di mana saja di dalam dokumen.
Ketika PHP disematkan dalam dokumen HTML dan PHP mem-parsing dokumen ini, ia menafsirkan bagian yang dilingkupi dengan tag pembuka () dari PHP dan mengabaikan bagian dokumen lainnya.
PHP dan HTML terlihat bersama dalam contoh berikut.
Berlatih di sini secara online:
Ketika juru bahasa PHP mengurai file, itu mencari tag yang menunjukkan di mana kode PHP dimulai dan diakhiri. Apa pun di luar sepasang tag pembuka dan penutup akan diabaikan oleh penerjemah (yaitu, ini hanya akan diberikan ke server web apa adanya). Misalnya, file yang diteruskan ke interpreter PHP memiliki kode berikut:
Ini akan diabaikan oleh penerjemah dan hanya akan diberikan apa adanya, pertama ke server web, yang pada gilirannya akan memberikannya ke browser.
Ini juga akan diabaikan oleh penerjemah dan hanya akan diteruskan ke server web apa adanya.
Jika file hanya berisi kode-PHP atau terletak di bagian paling akhir file, yaitu tidak ada apa-apa setelahnya, maka lebih baik untuk menghilangkan tag penutup (jangan tentukan). Ini menghindari penambahan spasi acak setelah tag akhir PHP, yang dapat menyebabkan efek yang tidak diinginkan.
PHP juga memungkinkan penggunaan tag terbuka pendek вместо
echo "Hello World!"; ?>
Karakter spasi
Spasi putih dapat digunakan dalam kode PHP: spasi, tab, dan jeda baris. Jumlah karakter spasi tidak terbatas dan bergantung pada preferensi pemrogram, yang tujuan utamanya adalah membuat teks program (kode sumber) yang jelas dan mudah dibaca.
Contoh di bawah ini menunjukkan kode PHP yang menggunakan spasi:
Kode contoh bisa saja ditulis dalam satu baris tanpa menggunakan spasi, tetapi kode ini kurang terbaca:
JavaScript diblokir di browser Anda. Harap aktifkan JavaScript agar situs berfungsi!
strip_tags
(PHP 3\u003e \u003d 3.0.8, PHP 4, PHP 5)
strip_tags - Menghapus tag HTML dan PHP dari stringDeskripsi
tali strip_tags (string str [, string allowable_tags])Fungsi ini mengembalikan string str dari mana tag HTML dan PHP telah dihapus. Untuk menghapus tag, robot digunakan mirip dengan yang digunakan dalam fungsi tersebut fgetss ().
Argumen opsional kedua dapat digunakan untuk menentukan tag yang tidak boleh dihapus.
PerhatianKomentar: Argumen allowable_tags ditambahkan di PHP 3.0.13 dan PHP 4.0b3. Sejak PHP 4.3.0, komentar HTML juga dihapus.
Karena strip_tags () tidak memeriksa kebenaran kode HTML, tag yang tidak lengkap dapat menyebabkan penghapusan teks yang tidak termasuk dalam tag.
Contoh 1. Contoh penggunaan strip_tags ()
$ text \u003d "Gugus kalimat.
Beberapa teks lagi "; echo strip_tags ($ text); echo" \\ n \\ n ------- \\ n "; // jangan dihapusEcho strip_tags ($ text, "
"); // Izinkan ,, echo strip_tags ($ text, " ");
Contoh ini akan menampilkan:
Gugus kalimat. Beberapa teks lagi -------
Gugus kalimat.
Beberapa teks lagi
PerhatianFungsi ini tidak mengubah atribut tag yang ditentukan dalam argumen allowable_tags, termasuk gaya dan onmouseover.
Sejak PHP 5.0.0 strip_tags () aman untuk mengolah data dalam bentuk biner.
Fungsi ini memiliki kelemahan yang signifikan - yaitu menempelkan kata-kata saat menghapus tag. Selain itu, fungsinya memiliki kerentanan. Fungsi alternatif yang serupa dengan strip_tags:
c "* -" dirty "html diproses dengan benar, saat simbol dapat ditemukan dalam nilai atribut tag< > * - html rusak diproses dengan benar * - komentar, skrip, gaya, PHP, Perl, kode ASP, tag MS Word, CDATA dihilangkan * - teks secara otomatis diformat jika berisi kode html * - perlindungan terhadap pemalsuan seperti: "<
Lihat juga deskripsi fungsi