PHP Фільтри
Перевірка даних = Визначте, чи дані належної форми.
Очистка даних = Видаліть будь-які недозволені символи із даних.
Розширення PHP фільтра
Фільтри PHP використовуються для перевірки та дезінфекції (убезпечення) зовнішнього введення.
Розширення фільтра PHP має багато функцій, необхідних для перевірки введених користувачем даних, і розроблено, щоб полегшити та пришвидшити перевірку даних.
Функція filter_list()
може бути використана для перерахування того, що пропонує розширення фільтра PHP:
Приклад
<table>
<tr>
<td>Назва фільтра</td>
<td>ID Фільтра</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
Спробуйте самі »
Навіщо використовувати фільтри?
Багато вебдодатків отримують зовнішні дані. Зовнішні вхідні/дані можуть бути:
- Введення користувача з форми
- Файли cookie
- Дані веб-служб
- Змінні сервера
- Результати запиту до бази даних
Завжди перевіряйте зовнішні дані!
Недійсні надіслані дані можуть призвести до проблем із безпекою та зламати вашу вебсторінку!
Використовуючи фільтри PHP, ви можете бути впевнені, що ваша програма (вебдодаток) отримує правильні вхідні дані!
PHP Функція filter_var()
Функція filter_var()
як перевірки, так і дезінфекції даних.
Функція filter_var()
фільтрує одну змінну за допомогою вказаного фільтра. Для цього потрібні дві частини даних:
- Змінна, яку ви хочете перевірити
- Тип перевірки для використання
Очистити рядок
У наступному прикладі використовується функція filter_var()
для видалення всіх HTML тегів із рядка:
Приклад
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Спробуйте самі »
Перевірити ціле число
У наступному прикладі використовується функція filter_var()
, щоб перевірити, чи є змінна $int цілим числом. Якщо $int є цілим числом, виведення коду нижче буде: "Integer is valid" ("Ціле число дійсне"). Якщо $int не є цілим числом, результатом буде: "Integer is not valid" ("Ціле число недійсне"):
Приклад
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Ціле число дійсне");
} else {
echo("Ціле число не дійсне");
}
?>
Спробуйте самі »
Підказка: filter_var() і проблема з 0
У прикладі вище, якщо $int було встановлено на 0, функція вище поверне "Integer is not valid" ("Ціле число недійсне"). Щоб вирішити цю проблему, використовуйте наведений нижче код:
Приклад
<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Ціле число дійсне");
} else {
echo("Ціле число не дійсне");
}
?>
Спробуйте самі »
Перевірити IP-адресу
У наступному прикладі використовується функція filter_var()
, щоб перевірити, чи змінна $ip є дійсною IP-адресою:
Приклад
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip дійсна IP адреса");
} else {
echo("$ip не дійсна IP адреса");
}
?>
Спробуйте самі »
Очистити та перевірити електронну адресу
У наступному прикладі використовується функція filter_var()
, щоб спочатку видалити всі неприпустимі символи зі змінної $email, а потім перевірити, чи це дійсна електронна адреса:
Приклад
<?php
$email = "john.doe@example.com";
// Видаліть усі неприпустимі символи з електронної пошти
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Перевірте e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email дійсна email адреса");
} else {
echo("$email не дійсна email адреса");
}
?>
Спробуйте самі »
Очистити та перевірити URL
У наступному прикладі використовується функція filter_var()
, щоб спочатку видалити всі неприпустимі символи з URL-адреси, а потім перевірити, чи $url є дійсною URL-адресою:
Приклад
<?php
$url = "https://www.w3schools.com";
// Видаліть усі неприпустимі символи з URL-адреси
$url = filter_var($url, FILTER_SANITIZE_URL);
// Дійсна url-адреса
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url дійсний URL");
} else {
echo("$url не дійсний URL");
}
?>
Спробуйте самі »
Повна довідка про PHP фільтр
Щоб отримати повну довідкову інформацію про всі функції фільтра, перейдіть до повної Довідкової інформації про фільтри PHP. Перевірте кожен фільтр, щоб дізнатися, які параметри та прапорці доступні.
Довідник містить короткий опис і приклади використання для кожної функції!