输入字段包含双引号值

Tes*_*in 18 html php

在我的PHP项目中,我有一个包含特殊字符的值,如","等("5"英寸,"3.5英寸"等).但它不会出现在文本字段中.我如何显示这个可以显示这个值一个文本框?有人帮助我......

Emi*_*röm 84

使用htmlentities:

<input value="<?php echo htmlentities($value);?>">
Run Code Online (Sandbox Code Playgroud)

  • 是123,不,你没有.此编码将确保HTML文档中的值正确.Web浏览器将以正确的正常格式自动发送. (4认同)
  • 如果要保存未在数据库中附加的值,该怎么办?在执行SQL INSERT之前,你必须每次都应用`html_entity_decode();` 这听起来不太好 (3认同)
  • Shivan,没有理由在这里删除任何斜线.你想要做的是编码HTML视图的字符串,你不需要做任何其他过滤. (2认同)

Pas*_*TIN 10

我想你的"文本框"是一个HTML <input>元素?

如果是这样,您将使用以下内容显示它:

echo '<input name="..." value="' . $yourValue . '" />';
Run Code Online (Sandbox Code Playgroud)

如果是这种情况,您需要转义变量中包含的HTML,其中包括htmlspecialchars:

echo '<input name="..." value="' . htmlspecialchars($yourValue) . '" />';
Run Code Online (Sandbox Code Playgroud)

请注意,您可能必须添加几个参数,尤其是指定您正在使用的编码.


这样,考虑到$yourValue已经初始化如下:

$yourValue = '5 " inches';
Run Code Online (Sandbox Code Playgroud)

你将从这个生成的HTML中获得:

<input name="..." value="5 " inches" />
Run Code Online (Sandbox Code Playgroud)

对那个效果更好的那个:

<input name="..." value="5 &quot; inches" />
Run Code Online (Sandbox Code Playgroud)

  • 那么当你提交输入字段时会发生什么?它会进入像" 然后你必须把它转换到其他地方?如果您想提交包含实际双引号的内容,该怎么办? (2认同)

Kai*_*ack 7

对于UTF-8,我选择htmlspecialchars($value, ENT_QUOTES, "UTF-8")了这个技巧.

堆栈源


小智 5

当使用charset UTF-8时,我使用下面的代码来获得Iñtërnâtiônàlizætiøn和双(或单)引号:

<input type="text" name="title" value="<?php echo htmlentities(stripslashes(utf8_decode($title))); ?>" />
Run Code Online (Sandbox Code Playgroud)

ps:这在有人提交表单后很有用,但是在输入未经验证时.