Замените \ на Doctrine 1.2

Вот моя проблема.

Я получаю данные из базы данных с помощью Doctrine 1.2 и помещаю данные в текстовое поле.

Размер данных 19 x 12 дюймов для ввода в текстовое поле.

Вот результат:

<input type="text" value="19" x 12"" />

Я думаю, мне нужно убежать от всего "с \"

Мой вопрос: как я могу выполнить это автоматически, не вдаваясь во весь мой скрипт и не создавая str_replace ()?

Спасибо всем.


person Jean-Francois    schedule 30.05.2011    source источник
comment
У вас есть актуальный php-код, который вы используете ... Я бы предложил add_slashes, но нам нужен некоторый контекст. Почему вы избегаете использования функции php?   -  person Abe Petrillo    schedule 30.05.2011
comment
Я полагаю, вы просили решение НЕ проходить через весь ваш код. Если вы извлекаете данные как объекты и получаете свойство через и ВСЕГДА вы берете данные, которые хотите, чтобы они были экранированы, вы можете установить метод получения. Предполагая, что вы получаете свойство таким образом: $object->property; Вы установили: public function getProperty() { return htmlspecialchars($this->_get('property')); }   -  person Tomasz Durka    schedule 30.05.2011


Ответы (3)


Я бы просто использовал htmlentities

$string = htmlentities($text_with_quotes, ENT_QUOTES);
echo '<input type="text" value="' . $string . '">';

Должен дать вам то, что вам нужно.

person Jimithus    schedule 30.05.2011

Взгляните на htmlspecialchars, который должен решить проблему.

person Berry Langerak    schedule 30.05.2011

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

public function getInputValue() {
    return addslashes($this->_get('table_field_name'));
}

А затем используйте в своих представлениях. Или вы можете переопределить функцию, которая получает данные из конкретного поля таблицы:

public function getFieldname() {
    return addslashes($this->_get('table_field_name'));
}

Addlashes можно заменить на все, что вы хотите, чтобы получить действительно необходимые данные в представлениях.

person Hck    schedule 30.05.2011