У меня есть функция, которая создает поля ввода.
$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.
То, что вы пытаетесь сделать, это замаскировать цитаты. Маскировка в HTML не делается путем добавления \
или что-то, но заменив его так называемой сущностью HTML. Таким образом, вы должны заменить все цитаты на "
, Вы можете легко сделать это, используя встроенную функцию PHP htmlentities ().
использование 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