- Фильтры в PHP
- Расширение фильтра PHP
- Пример
- Функция PHP filter_var()
- Синтаксис
- Параметры функции filter_var():
- Очистить строку от html-тегов
- Пример
- Проверить целое число
- Пример
- Проверить целое число, равное 0
- Пример
- Проверка IP-адреса
- Пример
- Очистить и проверить адрес электронной почты
- Пример
- Очистить и проверить URL-адрес
- Пример
- Filtering HTML Content Before Loading to Page using PHP Tutorial
- What is Content Filtering?
- How can we Achieve Content Filtering using PHP?
- Sample Application Source Code
- Output Snapshots
- «About Us» Page Content
- «Welcome» Page Content
Фильтры в PHP
Часто веб-приложения оперируют с данными, получеными извне:
- Пользовательский ввод из формы
- cookies
- Данные от веб-сервисов
- Переменные сервера
- Результаты запроса к базе данных
Такие данные необходимо тщательно проверять перед использованием и чистить. Фильтры PHP используются для проверки и дезинфекции внешнего ввода.
Расширение фильтра PHP
Расширение фильтра PHP имеет много функций, необходимых для проверки пользовательского ввода, и предназначено для упрощения и ускорения проверки данных.
Функция filter_list() может использоваться для перечисления тех возможностей, которые предлагают фильтры PHP.
Пример
Имя фильтра ID фильтра $filter) < echo '' . $filter . ' ' . filter_id($filter) . ' '; > ?>
Функция PHP filter_var()
Функция filter_var() фильтрует переменную с помощью указанного фильтра. Эта функция используется как для проверки, так и для очистки данных.
Синтаксис
Параметры функции filter_var():
var Обязательный. Переменная, которую вы хотите проверить. filtername Необязательный. Используется для указания идентификатора или имени используемого фильтра. Если не указан, то используется FILTER_DEFAULT , который равнозначен FILTER_UNSAFE_RAW . Это значит, что по умолчанию не применяется никакого фильтра. options Необязательный. Используется для указания одного или нескольких флагов/параметров для использования.
Очистить строку от html-тегов
В следующем примере функция filter_var() используется для удаления всех HTML-тегов из строки:
Пример
Привет Мир!"; $newstr = filter_var($str, FILTER_SANITIZE_STRING); echo $newstr; ?>
Проверить целое число
Параметр FILTER_VALIDATE_INT используется для проверки, являются ли данные, переданные фильтру filter_var() , допустимым целочисленным значением. В приведенном ниже скрипте будет отображаться TRUE для переменной $value01, и будет выведено FALSE для переменной $value02 (поскольку дробные числа/десятичные числа не являются целыми):
Пример
else < echo 'FALSE'; >echo '
'; $value02 = '123.456'; if(filter_var($value02,FILTER_VALIDATE_INT)) < echo 'TRUE'; >else < echo 'FALSE'; >?>
Проверить целое число, равное 0
В приведенном выше примере, если $int было установлено в 0, функция выше вернет FALSE . Чтобы решить эту проблему, используйте приведенный ниже код:
Пример
Проверка IP-адреса
Параметр FILTER_VALIDATE_IP используется для проверки, являются ли данные, переданные фильтру filter_var() , потенциально допустимым IP-адресом. В приведенном ниже скрипте будет отображаться TRUE для переменной $value01, и будет выведено FALSE для переменной $value02 (поскольку её значение не соответствует требуемой структуре данных для IP-адресов):
Пример
else < echo 'FALSE'; >echo '
'; $value02 = '1.2.3.4.5.6.7.8.9'; if(filter_var($value02,FILTER_VALIDATE_IP)) < echo 'TRUE'; >else < echo 'FALSE'; >?>
Очистить и проверить адрес электронной почты
Параметр FILTER_SANITIZE_EMAIL используется для удаления любых символов, которые недействительны в адресах электронной почты (например, скобки, угловые скобки, двоеточия и т.д.). Например, допустим, вы случайно добавили круглые скобки вокруг символа вашего адреса электронной почты:
Пример
Фильтр удаляет эти круглые скобки и возвращает валидный адрес электронной почты.
Очистить и проверить URL-адрес
Параметр FILTER_SANITIZE_URL действует аналогично фильтру очистки адреса электронной почты. Он удаляет любые символы, которые недействительны в URL (например, некоторые символы UTF-8 и т.д.). Предположим, что вы случайно добавили «®» в URL вашего сайта:
Пример
Фильтр удаляет символ «®» и возвращает валидный URL.
Примечание: Фильтр FILTER_SANITIZE_URL удаляет все недопустимые символы из предоставленной строки URL-адреса, кроме букв, цифр и $-_.+!*'(),<>|\\^~[]`<>#%»;/?:@&= .
Filtering HTML Content Before Loading to Page using PHP Tutorial
In this tutorial, you will learn how to Filter HTML Content before loading or displaying it on the page using PHP Language. The tutorial aims to provide the IT/CS students and new PHP programs with a reference to learn to enhance their knowledge and programming capabilities using the PHP Language. Here, I will provide some snippets and a sample source code that demonstrate the goal of this tutorial.
What is Content Filtering?
Content Filtering is also known as Web Content Filtering which is a set of solutions for monitoring, altering, or analyzing page content. This kind of solution or feature is mostly used in some Content Management System platforms such as WordPress which allows the site users to filter and alter the page or article content before displaying it.
How can we Achieve Content Filtering using PHP?
Using PHP Language, we can simply read the HTML content even displaying it on the page yet using the ob_start() and ob_get_clean() so we could do something with the content before loading it on the page. See the example below for a better idea.
The snippet above demonstrates a simple way to filter the HTML content and alter the content before showing it.
Sample Application Source Code
Here are the scripts of a simple web application that demonstrate also Content Filtering using PHP. Follow the instructions so you can run it also on your end. Although, I also provided some snapshots of the results of the application.
First, create a new directory named pages inside your source code root folder. Save the following HTML Files.
The given HTML scripts are the sample HTML script that contains the different contents to filter. Don’t forget to change the sample image source on each HTML file that is available on your end.
Next, in your source code root folder, create a new PHP file named index.php and paste the following script. The code below is a combined PHP and HTML script that lists the page contents.
Next, let’s create the sample filtering function for this application. The script below is named filtering.php. It contains the function that is being called when filtering the original content and returns the altered content.
function filter_content_before($content="")// If HTML content is not empty, filter contentif(!empty($content))/*** Forcing Links to view in new window*/$links_match_count=preg_match_all('/\/',$content,$matches, PREG_OFFSET_CAPTURE);if($links_match_count>0)// Loop matched linksforeach($matches[0]as$link)// Check of links is already set to open into a new window or not$link_in_window_count=preg_match_all('/(:?target\s?=\s?["\']_blank["\'])/si',$link[0],$new_window_matches, PREG_OFFSET_CAPTURE);if($link_in_window_count0)$content=str_replace($link[0],$new_link,$content);>>>/*** Labeling Paragraphs*/$paragraph_match_count=preg_match_all('/(.*?)/si'
,$content,$paragraph_matches, PREG_OFFSET_CAPTURE);/*** Add label befor and after paragraphs*/if($paragraph_match_count>0)$pi=1;foreach($paragraph_matches[0]as$paragraph)$new_paragraph="\"text-muted text-center\">>\n";$new_paragraph.=$paragraph[0]."\n";$new_paragraph.="\"text-muted text-center\">>\n";// $new_paragraph .= "\n";$content=str_replace($paragraph[0],$new_paragraph,$content);$pi++;>>// print_r($paragraph_match_count);exit;/*** Labeling Images*/$img_match_count=preg_match_all('//si',$content,$img_matches, PREG_OFFSET_CAPTURE);/*** Add label befor and after Images*/if($img_match_count>0)$ii=1;foreach($img_matches[0]as$img)$new_img="\"text-muted text-center\">>\n";$new_img.=$img[0]."\n";$new_img.="\"text-muted text-center\">>\n";$content=str_replace($img[0],$new_img,$content);$ii++;>>>return$content;>Lastly, let’s create the view page which displays the filtered content of the selected HTML scripts. The file below is named view.php. It contains a 2-panel window that represents the original output of the HTML content scripts and the altered one. On the left panel, it previews the original output of the content while the altered content preview is on the right panel.
Output Snapshots
Here are the snapshots of the output of the script I have provided above.
«About Us» Page Content
«Welcome» Page Content
That’s it! You can now test the sample web applications on your end. I have also provided the source code zip file that I created for this tutorial. You can download it by clicking the Download Button located below this article/content.
There you go! I hope this Filtering HTML Content Before Loading to Page using PHP Tutorial helps you with what you are looking for and that you’ll find this useful for your current and future PHP Projects.
Explore more on this website for more Tutorials and Free Source Codes.