Penggunaan fungsi ARRAY.FILTE pada PHP

PHP filter digunakan untuk memvalidasi dan filter data dari sumber yang tidak aman, seperti input pengguna.

Table of Contents

  • Apa itu PHP Filter?
  • Mengapa menggunakan filter?
  • Fungsi dan Filter
  • Memvalidasi dan Sanitasi
  • Pilihan dan bendera
  • memvalidasi input
  • contoh menjelaskan
  • masukan pemurnian
  • contoh menjelaskan
  • Sebuah pluralitas filter masukan
  • contoh menjelaskan
  • Gunakan Filter Callback
  • contoh menjelaskan

Table of Contents

  • Apa itu PHP Filter?
  • Mengapa menggunakan filter?
  • Fungsi dan Filter
  • Memvalidasi dan Sanitasi
  • Pilihan dan bendera
  • memvalidasi input
  • contoh menjelaskan
  • masukan pemurnian
  • contoh menjelaskan
  • Sebuah pluralitas filter masukan
  • contoh menjelaskan
  • Gunakan Filter Callback
  • contoh menjelaskan

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?

  • Input data dari formulir
  • cookies
  • Data layanan web
  • Server Variabel
  • hasil query database

Fungsi dan Filter

Untuk menyaring variabel, menggunakan salah satu fungsi filter berikut:

  • filter_var () - untuk menyaring variabel tunggal dengan filter tertentu
  • filter_var_array () - untuk menyaring beberapa variabel dengan filter yang sama atau berbeda
  • filter_input - Dapatkan satu variabel input dan filter itu
  • filter_input_array - Dapatkan variabel input lebih, dan dengan filter yang sama atau berbeda untuk menyaring mereka

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:

Penggunaan fungsi ARRAY.FILTE pada PHP

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 Sanitasi

Ada dua jenis filter:

Memvalidasi filter:

  • Digunakan untuk memvalidasi input pengguna
  • aturan Format yang ketat (seperti URL atau E-Mail verifikasi)
  • Jika berhasil, jenis kembali yang diharapkan, jika gagal untuk kembali FALSE

Sanitasi filter:

  • Ini digunakan untuk membolehkan atau melarang karakter string tertentu
  • Tidak ada aturan format data
  • Selalu kembali string

Pilihan dan bendera

Pilihan 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 input

Mari 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 menjelaskan

Contoh di atas memiliki variabel input dengan (email) "GET" metode transfer:

  1. Mendeteksi keberadaan "email" variabel masukan "GET" Jenis
  2. Jika ada variabel masukan untuk mendeteksi apakah itu adalah alamat e-mail yang valid

masukan pemurnian

Mari 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 menjelaskan

Contoh di atas dengan satu variabel input (url) "GET" metode mengirim:

  1. Mendeteksi keberadaan "url" variabel input "GET" Jenis
  2. Jika variabel masukan ada, pemurnian (menghapus karakter ilegal), dan akan menyimpannya dalam variabel $ url

Jika variabel input string seperti ini: "http://www.ruaanoob.com/", variabel $ url setelah pemurnian adalah sebagai berikut:



Sebuah pluralitas filter masukan

Bentuk 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 menjelaskan

Contoh di atas memiliki tiga variabel input (nama, umur dan email) yang dikirimkan melalui metode "GET":

  1. Mengatur sebuah array yang berisi nama-nama variabel input yang digunakan untuk menentukan variabel input dan filter
  2. () Fungsi, parameter masukan, termasuk variabel GET dan hanya mengatur berbagai panggilan filter_input_array
  3. Deteksi variabel $ hasil "usia" dan "email" variabel input ilegal. (Jika ada masukan ilegal, setelah () fungsi penggunaan filter_input_array, variabel input SALAH.)

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:

  • Harus array asosiatif yang berisi variabel input kunci array (seperti "usia" variabel input)
  • Nilai dari array ini harus menjadi ID filter, atau ketentuan filter, bendera dan pilihan array

Gunakan Filter Callback

Dengan 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 menjelaskan

Di atas contoh semua "_" menjadi "".:

  1. Untuk membuat "_" diganti dengan "." Fungsi
  2. Fungsi panggilan filter_var (), yang parameter yang menyaring FILTER_CALLBACK dan array yang berisi fungsi kita