Menghapus tanda baca berulang.

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."[^>]*>(.*?). ")", $ 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 , di halaman html.

$ fp \u003d fopen ("http://www.catswhocode.com/blog", "r"); while (! feof ($ fp)) ($ page. \u003d fgets ($ fp, 4096);) $ titre \u003d eregi (" (.*)", $ halaman, $ regs); echo $ regs; fclose ($ fp);

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 "".

Contoh:

Tag terbuka pendek

Tag pendek dimulai dengan "". Tag gaya pendek hanya tersedia jika diaktifkan dalam file konfigurasi php.ini di server.

Contoh:

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.

Halaman PHP

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

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 string

Deskripsi

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.

Komentar: Argumen allowable_tags ditambahkan di PHP 3.0.13 dan PHP 4.0b3. Sejak PHP 4.3.0, komentar HTML juga dihapus.

Perhatian

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 dihapus

Echo strip_tags ($ text, "

"); // Izinkan ,, echo strip_tags ($ text, " ");

Contoh ini akan menampilkan:

Gugus kalimat. Beberapa teks lagi -------

Gugus kalimat.

Beberapa teks lagi

Perhatian

Fungsi 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: "<script\u003e alert ("hai")script\u003e "* * @param string $ s * @param array $ allowable_tags Larik tag yang tidak akan dipotong * Contoh:" b "- tag akan tetap dengan atribut," "- tag akan tetap tanpa atribut * @param bool $ is_format_spaces Format spasi dan jeda baris? * Teks keluaran (biasa) sedekat mungkin dengan teks masukan di browser. * Dengan kata lain, ini dengan cerdas mengubah teks / html menjadi teks / biasa. * Teks diformat hanya jika ada tag yang telah dihilangkan. * @Param array $ pair_tags array nama tag berpasangan yang akan dihapus bersama dengan konten * lihat nilai default * @param array $ para_tags array nama tag yang dipasangkan, yang akan diperlakukan sebagai paragraf (jika $ is_format_spaces \u003d true) * lihat default * @return string * * @license http://creativecommons.org/licenses/by-sa/3.0/ * @author Nasibullin Rinat, http: //orangetie.ru/ * @charset ANSI * @version 4.0.14 * / function strip_tags_smart (/ * string * / $ s, larik $ allowable_tags \u003d , / * boolean * / $ is_format_spaces \u003d true, larik $ pair_tags \u003d larik ("script", "style", "map", "iframe", "frameset", "object", "applet", "co mment "," button "," textarea "," select "), larik $ para_tags \u003d larik (" p "," td "," th "," li "," h1 "," h2 "," h3 ", "h4", "h5", "h6", "div", "form", "title", "pre")) (// return strip_tags ($ s); statis $ _callback_type \u003d false; statis $ _allowable_tags \u003d array (); statis $ _para_tags \u003d array (); # ekspresi reguler untuk atribut tag #correct proses HTML kotor dan rusak dalam rangkaian karakter UTF-8 singlebyte atau multibyte! static $ re_attrs_fast_safe \u003d "(?!) #statement, yang mengikuti setelah tag #correct atribut (?\u003e [^\u003e" \\ "] + | (?<=[\=\x20\r\n\t]|\xc2\xa0) "[^"]*" | (?<=[\=\x20\r\n\t]|\xc2\xa0) \"[^\"]*\")* #incorrect attributes [^>] * + "; if (is_array ($ s)) (if ($ _callback_type \u003d\u003d\u003d" strip_tags ") ($ tag \u003d strtolower ($ s); if ($ _allowable_tags) (#tag dengan atribut if (array_key_exists ($ tag, $ _allowable_tags)) mengembalikan $ s; #tag tanpa atribut if (array_key_exists ("<" . $tag . ">", $ _allowable_tags)) (if (substr ($ s, 0, 2) \u003d\u003d\u003d""; if (substr ($ s, -2) \u003d\u003d\u003d" /\u003e ") return"<" . $tag . " />"; kembali"<" . $tag . ">";)) if ($ tag \u003d\u003d\u003d" br ") return" \\ r \\ n "; if ($ _para_tags && array_key_exists ($ tag, $ _para_tags)) return" \\ r \\ n \\ r \\ n "; return "";) trigger_error ("Jenis panggilan balik tidak dikenal" ". $ _callback_type." "!", E_USER_ERROR);) if (($ pos \u003d strpos ($ s, ")<")) === false || strpos($s, ">", $ pos) \u003d\u003d\u003d false) #speed improvement (#tags not found return $ s;) $ length \u003d strlen ($ s); #unpaired tags (buka, tutup ,! DOCTYPE, namespace MS Word) $ re_tags \u003d "~: * +)?) # 1 ". $ Re_attrs_fast_safe."\u003e ~ SxSX "; $ patterns \u003d array (" /<([\?\%]) .*? \\1>/ sxSX ", # tertanam PHP, Perl, kode ASP" /<\!\\]>/ sxSX ", # blok CDATA #" /<\!\[ [\x20\r\n\t]* .*? \]>/ sxSX ", #: TIDAK DIGUNAKAN LAGI: tag MS Word seperti... "/<\!--.*?-->/ sSX ", # komentar #MS Kata tag seperti"...", # eksekusi kode bersyarat untuk jenis IE" HTML "# eksekusi kode bersyarat untuk jenis IE" Html"# lihat http://www.tigir.com/comments.htm" /<\! (?:--)?+ \[ (?> [^ \\] "\\"] + | "[^"] * "| \\" [^ \\ "] * \\") * \\] (?: -)? +\u003e / sxSX ",); if ($ pair_tags) (# tag yang dipasangkan dengan konten: foreach ($ pair_tags sebagai $ k \u003d\u003e $ v) $ pair_tags [$ k] \u003d preg_quote ($ v, "/"); $ patterns \u003d "/<((?i:" . implode("|", $pair_tags) . "))" . $re_attrs_fast_safe . "(? .*? <\/(?i:\\1)" . $re_attrs_fast_safe . "> / sxSX ";) #d ($ pola); $ i \u003d 0; # perlindungan lingkaran $ max \u003d 99; sementara ($ i< $max) { $s2 = preg_replace($patterns, "", $s); if (preg_last_error() !== PREG_NO_ERROR) { $i = 999; break; } if ($i == 0) { $is_html = ($s2 != $s || preg_match($re_tags, $s2)); if (preg_last_error() !== PREG_NO_ERROR) { $i = 999; break; } if ($is_html) { if ($is_format_spaces) { /* В библиотеке PCRE для PHP \s - это любой пробельный символ, а именно класс символов [\x09\x0a\x0c\x0d\x20\xa0] или, по другому, [\t\n\f\r \xa0] Если \s используется с модификатором /u, то \s трактуется как [\x09\x0a\x0c\x0d\x20] Браузер не делает различия между пробельными символами, друг за другом подряд идущие символы воспринимаются как один */ #$s2 = str_replace(array("\r", "\n", "\t"), " ", $s2); #$s2 = strtr($s2, "\x09\x0a\x0c\x0d", " "); $s2 = preg_replace("/ [\x09\x0a\x0c\x0d]++ | <((?i:pre|textarea))" . $re_attrs_fast_safe . "(? .+? <\/(?i:\\1)" . $re_attrs_fast_safe . "> \\ K / sxSX "," ", $ s2); if (preg_last_error ()! \u003d\u003d PREG_NO_ERROR) ($ i \u003d 999; break;)) # larik tag yang tidak akan dipotong jika ($ allowable_tags) $ _allowable_tags \u003d array_flip ($ allowable_tags); # tag berpasangan yang akan diperlakukan sebagai paragraf if ($ para_tags) $ _para_tags \u003d array_flip ($ para_tags);)) #if #tags processing if ($ is_html) ($ _callback_type \u003d "strip_tags"; $ s2 \u003d preg_replace_callback ($ re_tags, __FUNCTION__, $ s2); $ _callback_type \u003d false; if (preg_last_error ()! \u003d\u003d PREG_NO_ERROR) ($ i \u003d 999; break;)) if ($ s \u003d\u003d\u003d $ s2) break; $ s \u003d $ s2; $ i ++;) # sementara if ($ i\u003e \u003d $ max) $ s \u003d strip_tags ($ s); #too many cycle for replace ... if ($ is_format_spaces && strlen ($ s)! \u003d \u003d $ length) (#remove a duplikat spasi $ s \u003d preg_replace ("/ \\ x20 \\ x20 ++ / sSX", "", trim ($ s)); #hapus spasi sebelum dan sesudah baris baru $ s \u003d str_replace (array ("\\ r \\ n \\ x20", "\\ x20 \\ r \\ n"), "\\ r \\ n", $ s); #replace 3 dan lebih banyak baris baru ke 2 baris baru $ s \u003d preg_replace ("/ [ \\ r \\ n] (3,) + / sSX "," \\ ) mengembalikan $ s; )?\u003e

Lihat juga deskripsi fungsi