0

长话短说...

这是我要设置属性的 html 标记:

echo "<input type='text' name='name' value='".$phpvar."'>";

$phpvar 可以在其中包含任何文本和符号(包括引号和双引号)

如何正确转义/转换字符串以使其正确显示?

谢谢大家!

编辑 谢谢大家帮助我!好的,如果其他人对此感到困惑,这解决了我的问题:

  1. 使用双引号 (") 将属性值括起来,因为 HTML 只有双引号 (") 的实体代码,它们不会像单引号 (') 那样出错。
  2. 使用 htmlentities() 或 htmlspecialchars() 转换/编码字符串。
4

4 回答 4

0

我不确定您要从变量中删除哪些特殊字符。正如您提到的引号,以下代码将从字符串中删除单引号和双引号。

<?php    
$quotes = array('"', "'");

echo str_replace($quotes, "", "Hello Wor'l'd of PHP");
于 2013-11-11T06:48:32.853 回答
0

htmlentities是为这种事情而设计的。

$phpvar= '"&#test"';
echo '<input type="text" name="name" value="'.htmlentities($phpvar).'">';

将输出

<input type='text' name='name' value='&quot;&amp;#test&quot;'>

文本字段将显示"&#test"

于 2013-11-11T06:48:52.863 回答
0

要将值发送到您的 php 文件,您需要对浏览器无法识别的字符(如&"')和更多符号进行编码。

为此,您可以使用urlencode()将这些符号转换为它可以呈现的 html 符号实体。

这是它的外观,

echo "<input type='text' name='name' value='".urlencode($phpvar)."'>";

这里有一些关于 stackoverflow 的有用问题,可以帮助你。

为什么要使用 urlencode?

AJAX + PHP 自生成字段产生空白结果

祝你好运!

于 2013-11-11T06:44:15.990 回答
0

你可以使用strip_tags()urlencode()htmlspecialchars()

或更改您的 echo 语句,如果 $phpvar 的值仅包含单引号,则使用双引号是更好的做法

echo '<input type="text" name="name" value="$phpvar">';

于 2013-11-11T06:44:29.507 回答