From ca5c8c514b7761ceece58bd7457541f4162c5775 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Fri, 20 Feb 2026 09:34:31 +0300 Subject: [PATCH] Update using.xml to En --- faq/using.xml | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/faq/using.xml b/faq/using.xml index 00dd9c4fd..af0a08a30 100644 --- a/faq/using.xml +++ b/faq/using.xml @@ -1,5 +1,5 @@ - + Использование PHP @@ -12,7 +12,6 @@ - Я не могу запомнить порядок аргументов PHP-функций, они что, случайны? @@ -29,6 +28,10 @@ порядок в строковых функциях обратный, то есть аналогичен «стог, иголка». + + C PHP 8.0 именованные аргументы + разрешили передачу аргументов по названию параметра и снизили значимость порядка параметров. + @@ -42,10 +45,9 @@ - PHP предлагает множество - предопределённых переменных наподобие суперглобальной переменной - $_POST. Можно пройти по элементам переменной $_POST в цикле, - поскольку это ассоциативный массив значений, которые пришли с POST-запросом. + PHP предлагает множество предопределённых переменных + наподобие суперглобальной переменной $_POST. Переменная $_POST поддерживает обход элементов в цикле, + поскольку это ассоциативный массив значений, которые поступили в POST-запросе. Например, просто пройдёмся по элементам массива конструкцией &foreach;, проверим значения на пустоту (empty) и выведем. @@ -73,8 +75,6 @@ if (empty($empty)) { print "Пустых:\n"; var_dump($empty); exit; } - -?> ]]> @@ -83,25 +83,26 @@ if (empty($empty)) { - - Необходимо преобразовать одинарные кавычки (') в одинарные кавычки, - перед которыми идёт обратный слеш (\'). Как это можно сделать через - регулярное выражение? - Хотелось бы также преобразовать «"» в «\"», а «\» в «\\». + Требуется заменить одинарные кавычки (') на кавычки с обратным слешем (\'). + Как это сделать через регулярное выражение? И тот же вопрос касается замены " на \" и \ на \\. - Предполагая, что это требуется для базы данных, - используйте механизм экранирования, который идёт - с базой данных. Например, вызывайте функцию - mysql_real_escape_string с MySQL - и функцию pg_escape_string с PostgreSQL. - В предыдущих версиях PHP чаще пользовались функциями addslashes + Задействуйте внутренний механизм экранирования базы данных, + если речь идёт о базе данных. Например, вызывайте функцию + mysql_real_escape_string в БД MySQL + и функцию pg_escape_string в базе данных PostgreSQL. + В предыдущих версиях PHP чаще вызывали функции addslashes и stripslashes. + + Экранирование значений вручную чревато ошибками и зависит от контекста. + Лучше предпочесть API баз данных, которые поддерживают подготовленные запросы + и привязку параметров, вместо построения запросов путём конкатенации экранированных строк. + @@ -121,8 +122,6 @@ function myfunc($argument) $variable = 10; echo "myfunc($variable) = " . myfunc($variable); - -?> ]]> Что происходит? @@ -214,8 +213,6 @@ $headers = getallheaders(); foreach ($headers as $name => $content) { echo "headers[$name] = $content
\n"; } - -?> ]]> @@ -254,8 +251,8 @@ foreach ($headers as $name => $content) { - Windows: не удаётся с IIS-сервера получить доступ к файлам, - к которым предоставлен общий доступ на другом компьютере. + Windows: с IIS-сервера невозможно получить доступ к файлам, + к которым предоставили общий доступ на другом компьютере.