PHP filter digunakan untuk memvalidasi dan filter data dari sumber yang tidak aman, seperti input pengguna. Show Table of Contents
Table of Contents
Apa itu PHP Filter?PHP filter digunakan untuk memvalidasi dan filter data dari sumber yang tidak aman. Test, memvalidasi dan filter input pengguna atau custom data merupakan bagian penting dari setiap aplikasi Web. ekstensi PHP filter dirancang untuk membuat data penyaringan lebih mudah dan lebih cepat. Mengapa menggunakan filter?Hampir semua aplikasi Web tergantung pada input eksternal. Data ini biasanya datang dari pengguna atau aplikasi lain (seperti layanan web). Dengan menggunakan filter, Anda dapat memastikan bahwa aplikasi mendapatkan jenis input yang benar. Anda harus selalu penyaringan data eksternal! Masukan filtering adalah masalah keamanan aplikasi yang paling penting. Apa data eksternal?
Fungsi dan FilterUntuk menyaring variabel, menggunakan salah satu fungsi filter berikut:
Pada contoh berikut, kita menggunakan filter_var () fungsi memvalidasi integer: <?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?> Kode di atas menggunakan "FILTER_VALIDATE_INT" filter untuk menyaring variabel. Sejak integer adalah sah, sehingga di atas kode akan menampilkan: Jika kita mencoba untuk menggunakan variabel non-integer (seperti "123abc"), adalah output: "Integer tidak sah". Untuk daftar lengkap dari fungsi dan filter, kunjungi Pedoman PHP Filter Referensi . Memvalidasi dan SanitasiAda dua jenis filter: Memvalidasi filter:
Sanitasi filter:
Pilihan dan benderaPilihan dan bendera yang digunakan untuk menambahkan tambahan penyaringan pilihan untuk filter yang ditentukan. filter yang berbeda memiliki pilihan yang berbeda dan bendera. Pada contoh berikut, kita menggunakan filter_var () dan "min_range" dan "max_range" pilihan untuk memverifikasi integer: <?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?> Seperti kode di atas, sebagai pilihan yang relevan harus ditempatkan dalam sebuah array disebut "opsi" di. Jika bendera tidak diperlukan dalam array. Sejak integer adalah "300", tidak dalam kisaran tertentu, output dari kode di atas akan menjadi: 不是一个合法的整数 Untuk daftar lengkap dari fungsi dan filter, kunjungi Pedoman PHP Filter Referensi . Anda dapat melihat pilihan yang tersedia untuk setiap filter dan bendera. memvalidasi inputMari kita coba memvalidasi masukan dari formulir. Kita perlu melakukan hal pertama adalah untuk mengkonfirmasi bahwa input data yang kita cari. Kemudian kita menggunakan filter_input () fungsi untuk menyaring data yang dimasukkan. Pada contoh di bawah ini, variabel masukan "email" akan diteruskan ke halaman PHP: <?php if(!filter_has_var(INPUT_GET, "email")) { echo("没有 email 参数"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一个合法的 E-Mail"; } else { echo "是一个合法的 E-Mail"; } } ?> Contoh hasil di atas adalah sebagai berikut: contoh menjelaskanContoh di atas memiliki variabel input dengan (email) "GET" metode transfer:
masukan pemurnianMari kita coba untuk membersihkan datang dari URL bentuk. Pertama-tama, kita perlu memastikan bahwa input data yang kita cari. Kemudian kami membersihkan data filter_input () fungsi input. Pada contoh di bawah ini, variabel masukan "url" akan diteruskan ke halaman PHP: <?php if(!filter_has_var(INPUT_GET, "url")) { echo("没有 url 参数"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?> contoh menjelaskanContoh di atas dengan satu variabel input (url) "GET" metode mengirim:
Jika variabel input string seperti ini: "http://www.ruaanoob.com/", variabel $ url setelah pemurnian adalah sebagai berikut: Sebuah pluralitas filter masukanBentuk sering terdiri dari beberapa bidang input. Untuk menghindari filter_var atau filter_input fungsi yang disebut berulang kali, kita dapat menggunakan filter_var_array filter_input_array atau fungsi. Dalam hal ini, kita menggunakan filter_input_array () fungsi untuk menyaring tiga variabel GET. Menerima variabel GET adalah nama, usia dan alamat e-mail: <?php $filters = array ( "name" => array ( "filter"=>FILTER_SANITIZE_STRING ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL ); $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("年龄必须在 1 到 120 之间。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("输入正确"); } ?> contoh menjelaskanContoh di atas memiliki tiga variabel input (nama, umur dan email) yang dikirimkan melalui metode "GET":
filter_input_array () Argumen kedua fungsi tersebut dapat berupa array atau ID filter tunggal. Jika parameter adalah ID filter tunggal, maka filter yang ditentukan akan menyaring semua masukan nilai array. Jika parameter ini adalah array, array harus mematuhi aturan berikut:
Gunakan Filter CallbackDengan menggunakan filter FILTER_CALLBACK, Anda dapat memanggil fungsi kustom, menggunakannya sebagai filter untuk digunakan. Dengan demikian, kita memiliki kontrol penuh atas penyaringan data. Anda dapat membuat fungsi kustom Anda sendiri, atau Anda dapat menggunakan fungsi PHP yang ada. Anda akan siap untuk menggunakan fungsi filter, menurut ketentuan yang ditentukan pilihan metode yang telah ditentukan. Dalam array asosiatif dengan nama "pilihan". Pada contoh berikut, kita menggunakan fungsi kustom dari semua "_" dikonversi ke ruang: <?php function convertSpace($string) { return str_replace("_", ".", $string); } $string = "www_w3big_com!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); ?> Hasil dari kode di atas adalah sebagai berikut: contoh menjelaskanDi atas contoh semua "_" menjadi "".:
|