返回输入字段,qoute值不起作用

时间:2016-01-18 13:02:42

标签: php html encoding quotes addslashes

我有一个创建输入字段的函数。

$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"="">

我尝试过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使输入值正常工作。

2 个答案:

答案 0 :(得分:2)

您要做的是掩盖引号。在HTML中屏蔽不是通过添加\或其他东西来完成的,而是通过将其替换为所谓的HTML实体来完成。因此,您必须用&quot;替换所有引号。您可以使用PHP本机函数htmlentities()轻松完成。

答案 1 :(得分: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.phphttp://www.w3schools.com/php/func_string_htmlentities.asp