【问题标题】:return input field with qoute values not working返回带有 qoute 值的输入字段不起作用
【发布时间】:2016-01-18 13:02:41
【问题描述】:

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

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

$field_value 包含一个带有 qoutes 的字符串。
$field_value 的 var_dump 结果:

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 一起正常工作。

【问题讨论】:

标签: php html encoding quotes addslashes


【解决方案1】:

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

【讨论】:

  • Thanx 没有想到这个功能,有时候你想太多问题而答案很简单。
【解决方案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.phphttp://www.w3schools.com/php/func_string_htmlentities.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多