English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод парсинга строки запроса в переменные с помощью parse_str в php

Этот пример описывает, как использовать parse_str() в PHP для анализа строки запроса и преобразования ее в переменные. Предоставляется для вашего参考, подробности см. ниже:

Функция parse_str() может реализовать преобразование строки в переменную, что означает реализацию механизма преобразования между строкой и переменной, в процессе передачи данных между клиентом и сервером данные передаются в виде строки, например, в запросе GET, а затем на сервере через глобальные переменные $_GET/$_POST и т.д. реализуется преобразование строки и переменной, например: https://ru.oldtoolbag.com/?index.php?var1=1&var2=2, после запроса сервер может использовать $_GET['var1'] для получения строки var1=1&var2=2 и преобразования ее в переменную. Функция parse_str() может реализовать такие же функции, использование функции parse_str() для анализа значения $_SERVER['QUERY_STRING']可以直接 реализовать преобразование строки и переменной, например $var1.

Одно. Прототип функции

void parse_str ( string str [, array &arr] )

Два. Совместимость версий

PHP 3, PHP 4, PHP 5

Три. Основные методы использования функции и примеры

1. Анализ строки в переменные

<?php
parse_str("var1=jb51&var2=parse_str");
echo $var1.$var2;
?>

2. Анализ строки и хранение переменных в массиве

<?php
parse_str("var1=jb51&var2=parse_str",$array);
print_r($array);
?>

Вывод:

Array ( [var1] => jb51 [var2] => parse_str )

Объяснение: Это хранение переменных в массиве было добавлено только в PHP 4.0.3

3. Строки с пробелами в анализе

<?php
parse_str("v ar1=jb51&var 2=parse_str",$array);
print_r($array);
?>

Вывод:

Array ( [v_ar1] => jb51 [var_2] => parse_str )

Объяснение: Прямо преобразуйте пробелы в подчеркивания _

Четыре. Внимание

1. Если не был установлен параметр array, переменная, установленная этой функцией, заменит уже существующую переменную с тем же именем.

2. Настройка magic_quotes_gpc в php.ini влияет на вывод функции. Если эта настройка включена, переменные будут преобразованы с помощью функции addslashes() до того, как они будут проанализированы parse_str().

3. Функция parse_str() содержит уязвимость при обработке параметров. Злоумышленник может использовать эту уязвимость для активации register_globals, что позволяет использовать другие уязвимости в скриптах PHP. Если вызывается parse_str() с одним параметром, функция будет считывать строку как строку, переданную через URL, и внешние атаки могут отправлять множество переменных для вызова ограничения памяти. Если во время вызова parse_str() выполняется запрос на закрытие, регистр register_globals останется включенным на протяжении всего жизненного цикла процесса веб-сервера.

Читатели, интересующиеся дополнительной информацией о PHP, могут ознакомиться с темами на нашем сайте: "Обзор использования строки (string) в PHP", "PHP данные и алгоритмы", "Обзор алгоритмов программирования PHP", "Обзор排序 алгоритмов PHP", "Обзор遍ительских алгоритмов и приемов PHP", "Обзор математических операций PHP", "Полное руководство по операциям с массивами (Array) PHP" и "Обзор операций с базами данных PHP".

Надеюсь, что это руководство поможет вам в разработке PHP-программ.

Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, загружен самостоятельно, сайт не имеет права собственности, не редактировался вручную и не несет ответственности за связанные с этим юридические последствия. Если вы обнаружите подозрительное содержимое, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @) для сообщения о нарушении авторских прав,并提供 соответствующие доказательства. Если нарушение будет подтверждено, сайт немедленно удалят涉嫌侵权的内容。

Тебе может понравиться