2016-01-18 6 views
0

У меня есть функция, которая создает поля ввода.Поле ввода возврата с значениями 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" 

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

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

Я попытался addslashes ($ 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

[Великий эскапизм (или: что вам нужно знать, чтобы работать с текстом в тексте)] (http://kunststube.net/escapism/) – deceze

ответ

2

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

+0

Thanx не думал об этой функции, иногда вы слишком задумываетесь о проблемах ответ прост. – FamousWolluf

1

Использование 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