在php子句中设置html标记属性的值

时间:2013-11-11 06:30:02

标签: php html mysql database

长话短说......

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

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

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

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

谢谢大家!

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

  1. 使用围绕属性值的双引号(“),因为HTML只有双打(”)的实体代码,并且它们不会像单身(')那样出错。
  2. 使用htmlentities()或htmlspecialchars()转换/编码字符串。

4 个答案:

答案 0 :(得分:0)

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

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

以下是它的外观,

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

以下是有关stackoverflow的一些有用的问题,可以帮助您解决问题。

Why should I use urlencode?

AJAX + PHP self-generated fields producing blank results

祝你好运![/ p>

答案 1 :(得分:0)

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

或更改你的echo语句,如果$ phpvar的值只包含单引号,那么使用双引号是一种更好的做法

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

答案 2 :(得分:0)

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

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

echo str_replace($quotes, "", "Hello Wor'l'd of PHP");

答案 3 :(得分:0)

htmlentities就是出于这种情况。

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

将输出

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

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