возвращаемое поле ввода с не работающими значениями qoute

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

$string = '<input type="' . $field_type . '" class="form-control" id="' . $field_name . '" name="' . $field_name . '" value="' . $field_value . '">';
return $string

$ field_value содержит строку с qoutes.
var_dump результат $ field_value:

string(19) ""Open Sans",Verdana"

Когда я смотрю на источник внутри Инструментов разработчика Chrome, результат:

 <input type="text" class="form-control" id="themesettings[main_body_font_family]" name="themesettings[main_body_font_family]" value="" open="" sans",verdana"="">

Я пробовал addlashes ($ field_value), но это возвращает:

<input type="text" class="form-control" id="themesettings[main_body_font_family]" name="themesettings[main_body_font_family]" value="\" open="" sans\",verdana"="">

Оба результата не верны / работают. Как я могу заставить входное значение работать правильно с qoutes.

0

Решение

То, что вы пытаетесь сделать, это замаскировать цитаты. Маскировка в HTML не делается путем добавления \ или что-то, но заменив его так называемой сущностью HTML. Таким образом, вы должны заменить все цитаты на &quot;, Вы можете легко сделать это, используя встроенную функцию PHP htmlentities ().

2

Другие решения

использование htmlentities($field_value) это будет конвертировать «в HTML-сущности

<?php
$field_value_converted = htmlentities($field_value);
?>

<input ... value="<?php echo $field_value_converted ?>" >

Узнайте больше о htmlentities() Функциональные возможности здесь: http://php.net/manual/en/function.htmlentities.php ИЛИ ЖЕ http://www.w3schools.com/php/func_string_htmlentities.asp

1