Как экранировать кавычки в php
Перейти к содержимому

Как экранировать кавычки в php

  • автор:

cubrid_real_escape_string

Функция возвращает экранированную версию переданной строки. Она экранирует символы: . В целом, одинарная кавычка используется для обёртывания символьной строки. Также можно использовать двойные кавычки, в зависимости от значения ansi_quotes. Если ansi_quotes установлен в «no», то строка обёрнутая в двойные кавычки будет рассматриваться как строка символов, а не как идентификатор. Значение по умолчанию — «yes». Если вы хотите использовать одинарную кавычку как часть строки — поставьте две одинарные кавычки подряд.

Список параметров

Строка, которую необходимо экранировать

Идентификатор соединения CUBRID. Если не задано, то будет использован последнее соединение, возвращённое cubrid_connect() .

Возвращаемые значения

false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_real_escape_string()

$conn = cubrid_connect ( «localhost» , 33000 , «demodb» );

$unescaped_str = ‘ !»#$%&\'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz<|>~’ ;
$escaped_str = cubrid_real_escape_string ( $unescaped_str );

$len = strlen ( $unescaped_str );

@ cubrid_execute ( $conn , «DROP TABLE cubrid_test» );
cubrid_execute ( $conn , «CREATE TABLE cubrid_test (t char( $len ))» );
cubrid_execute ( $conn , «INSERT INTO cubrid_test (t) VALUES(‘ $escaped_str ‘)» );

$req = cubrid_execute ( $conn , «SELECT * FROM cubrid_test» );
$row = cubrid_fetch_assoc ( $req );

cubrid_close_request ( $req );
cubrid_disconnect ( $conn );
?>

Результат выполнения приведённого примера:

array(1) < ["t"]=>string(95) " !"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz<|>~" >

User Contributed Notes

There are no user contributed notes for this page.

  • Функции совместимости CUBRID MySQL
    • cubrid_​affected_​rows
    • cubrid_​client_​encoding
    • cubrid_​close
    • cubrid_​data_​seek
    • cubrid_​db_​name
    • cubrid_​errno
    • cubrid_​error
    • cubrid_​fetch_​array
    • cubrid_​fetch_​assoc
    • cubrid_​fetch_​field
    • cubrid_​fetch_​lengths
    • cubrid_​fetch_​object
    • cubrid_​fetch_​row
    • cubrid_​field_​flags
    • cubrid_​field_​len
    • cubrid_​field_​name
    • cubrid_​field_​seek
    • cubrid_​field_​table
    • cubrid_​field_​type
    • cubrid_​list_​dbs
    • cubrid_​num_​fields
    • cubrid_​ping
    • cubrid_​query
    • cubrid_​real_​escape_​string
    • cubrid_​result
    • cubrid_​unbuffered_​query
    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Экранирование кавычек (htmlspecialchars)

    Здравствуйте! Хочу задать заезженный вопрос касаемый экранирования спецсимволов. При добавлении в базу применяю функцию htmlspecialchars(). При выводе в Текст текст «текст» , кавычки отображаются нормально, а вот в meta title Текст текст "текст" . Как сделать чтобы кавычки в TITLE отображались нормально и как грамотно реализовать данную задачу?

    Отслеживать
    задан 20 мар 2014 в 23:43
    308 1 1 золотой знак 5 5 серебряных знаков 20 20 бронзовых знаков

    1 ответ 1

    Сортировка: Сброс на вариант по умолчанию

    htmlspecialchars() нужно выполнять не при добавлении в базу, а непосредственно при выводе на страницу (при подстановке в HTML-шаблон). При добавлении в базу данных нужно использовать функцию экранирования кавычек, которая перед кавычками добавляет обратный слэш («\»). Это может делать, например, mysqli_escape_string() . Экранирование кавычек при добавлении в БД нужно только для корректного сохранения, при сохранении бэкслэши уберутся и в базе будет храниться исходный вариант (без бэкслэшей). В базе данных желательно хранить текстовые значения в оригинальном виде. Если хранить их заранее обработанные htmlspecialchars() , то могут возникнуть трудности с поиском и выводом этих записей не в HTML (например, в JSON или в консоль). Поэтому при сохранении в базу текстовой строки (при подстановке её в SQL-запрос) используешь mysqli_escape_string() (на крайняк addslashes() ). При выводе в HTML оборачиваешь переменную с текстовым значением в htmlspecialchars() . Причём, в htmlspecialchars() надо оборачивать любые текстовые строки, которые не являются HTML-форматированными, вне зависимости берутся они из базы или нет.

    Отслеживать
    ответ дан 21 мар 2014 в 4:28
    105 1 1 серебряный знак 9 9 бронзовых знаков

    • php
    • htmlspecialchars
      Важное на Мете
    Похожие

    Подписаться на ленту

    Лента вопроса

    Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

    Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951

    quotemeta

    Возвращает модифицированную строку, в которой перед каждым символом из следующего списка:

    вставлен обратный слеш ( \ ).

    Список параметров

    Возвращаемые значения

    Возвращает экранированную строку или false , если в качестве параметра string была указана пустая строка.

    Примеры

    Пример #1 Пример использования quotemeta()

    var_dump ( quotemeta ( ‘PHP is a popular scripting language. Fast, flexible, and pragmatic.’ ));
    ?>

    Результат выполнения приведённого примера:

    string(69) "PHP is a popular scripting language\. Fast, flexible, and pragmatic\."

    Примечания

    Замечание: Эта функция безопасна для обработки данных в двоичной форме.

    Смотрите также

    • addslashes() — Экранирует строку с помощью слешей
    • addcslashes() — Экранирует строку слешами в стиле языка C
    • htmlentities() — Преобразовывает все возможные символы в соответствующие HTML-сущности
    • htmlspecialchars() — Преобразовывает специальные символы в HTML-сущности
    • nl2br() — Вставляет HTML-код разрыва строки перед каждым переводом строки
    • stripslashes() — Удаляет экранирование символов
    • stripcslashes() — Удаляет экранирование символов, произведённое функцией addcslashes
    • preg_quote() — Экранирует символы в регулярных выражениях

    User Contributed Notes 3 notes

    14 years ago

    $str = «Hello world. (can you hear me?)» ;
    echo quotemeta ( $str );
    ?>

    The output of the code above will be:
    Hello world\. \(can you hear me\?\)

    17 years ago

    Took me a while to realize this was NOT the command I wanted for escaping potentially harmful characters in a string that would be used as part of a system command. Instead, I needed either escapeshellarg() (http://www.php.net/manual/en/function.escapeshellarg.php) or escapeshellcmd() (http://www.php.net/manual/en/function.escapeshellcmd.php)

    22 years ago

    This function escapes characters that have special meaning in regular expressions. preg_quote() has similar functionality, but is more powerful since it escapes more characters (including one user-specified character).

    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Как экранировать кавычки в PhpStorm

    В какой язык вставили? А то я несколько раз замечал, что в том же php если внутрь строки вставляешь — то phpStorm сам кавычки экранирует.

    На сайте с 02.08.2014
    2 марта 2017, 19:37

    Дикий пионер:
    В какой язык вставили? А то я несколько раз замечал, что в том же php если внутрь строки вставляешь — то phpStorm сам кавычки экранирует.

    Что бы автоматом не экранировал при вставке CTRL+Shift+Alt+V Если вы Вставляете текст в двойные кавычки в котором есть двойные кавычки, то они экранируется автоматом. Тоже самое касается и одинарных кавычек.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *