Rumah >pembangunan bahagian belakang >tutorial php >Penapis PHP
Terdapat sangat sedikit bahasa yang mempunyai ciri penapis. Penapis adalah salah satu ciri nilai tambah bahasa pengaturcaraan. Ini membantu kami menapis data atau rentetan sebelum memproses. Inilah panggilan masa untuk menggunakan ini untuk mengelakkan beberapa isu kelemahan dalam sistem. Penapis PHP boleh digunakan untuk mengesahkan atau membersihkan input luaran. Penapis PHP adalah sambungan dengan pelbagai fungsi dan ciri yang boleh kita gunakan semasa pengekodan. Contohnya, jika kami mengambil input pelanggan daripada borang sebagai id e-mel, kami harus mengesahkan atau membersihkannya sebelum operasi berkaitan pangkalan data. Sebagai pengekod atau pembangun, kita harus menggunakan penapis ini dalam PHP mengikut keperluan dan keperluan perniagaan kita.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Pembersih dan penapis ialah operasi yang paling biasa dalam persekitaran aplikasi web. Berikut ialah sintaks asas:
filter_var(variable, filter, options)
Fungsi filter_var ini mengambil 3 parameter. 2 parameter terakhir, penapis dan pilihan adalah pilihan. Yang pertama ialah pembolehubah atau pengecam itu sendiri. Ini adalah satu, kami ingin menapis, yang kedua ialah apa yang kami mahu lakukan (dalam ini, kami lulus ID pilihan yang tersedia dalam PHP), dan yang terakhir ialah pilihan berkaitan penapis. Mari kita fahami perkara yang sama dengan contoh kuiz:
Kod:
<?php $int_val = 200; if(filter_var($int_val, FILTER_VALIDATE_INT)){ echo "The <b>$int_val</b> is a valid one."; // valid } else{ echo "The <b>$int_val</b> not a valid input as an integer"; // invalid } ?>
Dalam contoh di atas, kami menggunakan penapis dan menyemak sama ada kami mempunyai nilai integer dalam pembolehubah $int_val. Jadi, inilah output untuk perkara yang sama.
Output:
Banyak aplikasi web PHP menerima input luaran daripada pihak pelanggan. Ideanya adalah untuk membersihkan input pengguna sebelum memproses, kerana kami tidak boleh mengharapkan pengguna untuk meletakkan semua data dengan betul. Mana-mana pengguna luaran atau input sistem atau data boleh membawa kepada isu keselamatan yang kritikal.
Kami boleh menapis di sini untuk membersihkan data yang dimasukkan daripada pelbagai sumber luaran seperti:
Bersama-sama, penapis dan sanitizer PHP membolehkan kami mengetahui sama ada input itu sah. Jika bukan input yang sah, dalam kes ini, kita boleh membersihkannya untuk menjadikannya sah. Dalam bahagian contoh yang akan datang, kita akan membincangkan pelbagai contoh yang berkaitan dengan ini.
Terdapat pelbagai jenis penapis tersedia dalam PHP. Kita boleh menyemak senarai itu menggunakan fungsi filter_list(). Fungsi ini menapis URL, Rentetan, nombor, alamat IP, dll.
Dalam bahagian ini, kita akan melihat pelbagai program contoh penapis secara individu.
Bersihkan Rentetan
Untuk menyemak sama ada rentetan itu sah atau tidak
Kod:
<?php $comment = "Hello word"; if(filter_var($comment, FILTER_SANITIZE_STRING)){ echo "The <b>$comment</b> is a valid one."; // valid } else{ echo "The <b>$comment</b> not a valid input"; // invalid } ?>
Dalam contoh di atas, kita dapat melihat rentetan yang sah; itulah sebabnya ia memberikan yang sah.
Output:
Dapatkan rentetan yang telah dibersihkan sebagai output
<?php $comment = "<i>Hello word</i>"; echo "Before sanitizing: ". $comment; $comment = filter_var($comment, FILTER_SANITIZE_STRING); echo "<br>"; // for new line echo "After sanitizing: ". $comment; ?>
Kita dapat lihat kita mempunyai dua output berbeza. Kita boleh lihat output sebelum dan selepas sanitasi adalah berbeza. Selepas membersihkan, teg HTML telah dialih keluar oleh fungsi penapis PHP.
Output:
Sahkan Alamat IP
Fungsi penapis PHP boleh melakukan kerja ini untuk kami. Mari lihat contoh.
Kod:
<?php $ip_address = "172.16.254.1:40"; if(filter_var($ip_address, FILTER_VALIDATE_IP)){ echo "The <b>$ip_address</b> is a valid one."; // valid } else{ echo "The <b>$ip_address</b> is not a valid input"; // invalid } ?>
Output:
Membersihkan dan mengesahkan alamat e-mel
Kod:
<?php $email_address = "someone@@testmail.com"; code> echo "Before Sanitizing: " . $email_address ."<br>"; if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){ echo "The <b>$email_address</b> is a valid one."; // valid } else{ echo "The <b>$email_address</b> not a valid input"; // invalid } echo "<br>"; echo "After Sanitizing: " . filter_var($email_address, FILTER_SANITIZE_EMAIL); ?>
Dalam contoh di atas, kami mempunyai nilai id e-mel yang tidak sah, kerana kami mendapat output ini dengan menggunakan fungsi penapis. Tetapi apabila kami membersihkan, ia memberikan e-mel yang betul.
Output:
Kod:
<?php $email_address = "[email protected]"; if(filter_var($email_address, FILTER_VALIDATE_EMAIL)){ echo "The <b>$email_address</b> is a valid one."; // valid } else{ echo "The <b>$email_address</b> not a valid input"; // invalid } ?>
Dalam contoh kod PHP di atas, kami menyemak sama ada e-mel itu sah.
Output:
Sanitize dan Sahkan URL
Dalam contoh ini, kita akan melihat sama ada URL input adalah sah. Jika bukan URL yang sah, ia akan membersihkannya untuk membetulkannya.
Kod:
<?php $URL = "https://www.educba.com/��courses�"; echo "Before Sanitizing: " . $URL ."<br>"; if(filter_var($URL, FILTER_VALIDATE_URL)){ echo "The <b>$URL</b> is a valid one."; // valid } else{ echo "The <b>$URL</b> is not a valid input"; // invalid } echo "<br>"; echo "After Sanitizing: " . filter_var($URL, FILTER_SANITIZE_URL); ?>
Output:
Kita harus menggunakan penapis PHP untuk mengesahkan atau membersihkan input pengguna. Dengan cara ini, kami boleh menyekat input pengguna yang terdedah. Kita boleh menggunakan pelbagai fungsi penapis PHP untuk mengesahkan input pengguna dan nilai. Kami juga boleh menggunakan sanitasi untuk membersihkan nilai (sama ada input pengguna atau yang diberikan secara langsung). Kita hendaklah sentiasa menggunakan sanitizer PHP sebelum menggunakan sebarang data kuki untuk pemprosesan data.
Atas ialah kandungan terperinci Penapis PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!