php-codeigniter - HTMLENTITIES в отображении значения текстового поля - PullRequest
0 голосов
/ 25 июня 2010

В моем приложении я хотел отобразить значение htmlentities (str), так как нет ограничений для одинарного или двойного или любого специального символа.Вместо использования или преобразования htmlentities (str), например

Есть ли способ установить его глобально для всех текстовых полей?

Ответы [ 3 ]

1 голос
/ 09 июля 2010

В codeigniter мы можем сделать это в рамках правил вроде $rules['other_gait']="htmlentities|max_length[200]";

Но спасибо за подсказку использовать htmlentities.

0 голосов
/ 25 июня 2010

Неа.Встроенные шаблоны PHP не имеют функции автоматического экранирования выходных значений.Лучшее, что вы можете сделать, - это определить функцию с коротким именем, чтобы сэкономить немного времени на ввод:

<?php
    function h($s) {
        echo htmlspecialchars($s, ENT_QUOTES);
    }
?>

<input id="text" name="text" value="<?php h(isset($_POST['text'])? $_POST['text'] : ''); ?>">

(Примечание: htmlspecialchars, а не htmlentities), которая будет пытаться кодировать HTMLвсе не-ASCII символы, которые могут испортить их, если вы не передадите правильный $charset аргумент.)

0 голосов
/ 25 июня 2010

с вашей структурой кода - нет, но вы можете предварительно обработать $ _POST .. этот подход не очень хорош, но если вы заполняете свои формы ТОЛЬКО как в примере, он будет работать.

$parametersToPreprocess = array(
    'text1',
    'text2',
);
foreach (array_keys($_POST) as $postKey) {
    if (in_array($postKey, $parametersToPreprocess)) {
        $_POST[$postKey] = htmlentities($_POST[$postKey]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...