Php 在字符串中使用HTML属性
我知道我应该对所有表单文本输入字段使用htmlentities,但这不起作用:Php 在字符串中使用HTML属性,php,html-entities,Php,Html Entities,我知道我应该对所有表单文本输入字段使用htmlentities,但这不起作用: <?php echo "<tr> <td align=\"right\">".Telephone." :</td> <td><input type=\"text\" name=\"telephone\" size=\"27\" value=\"htmlentities($row[telephon
<?php
echo "<tr>
<td align=\"right\">".Telephone." :</td>
<td><input type=\"text\" name=\"telephone\" size=\"27\"
value=\"htmlentities($row[telephone])\"> Inc. dialing codes
</td>
</tr>";
?>
它只是在表单中以htmlentities0123456789的形式显示输入值?我做错了什么?请尝试使用
value=\"" . htmlentities($row[telephone]) . "\"
在那里。目前,您的字符串只包含htmlentities字符串,并将变量拼接到中。您需要取出字符串,调用函数并将其结果放置到位,如上所述。尝试使用
value=\"" . htmlentities($row[telephone]) . "\"
在那里。目前,您的字符串只包含htmlentities字符串,并将变量拼接到中。你需要跳出字符串,调用函数并把结果放在适当的位置,如上。 你不能在字符串中间调用函数。您需要从函数调用中获取返回值,然后将其包含在字符串中 然而
<tr>
<td align="right">
<label for="telephone">Telephone:</label>
</td>
<td>
<input type="text"
name="telephone"
id="telephone"
size="27"
value="<?php
echo htmlentities($row[telephone]);
?>">
Inc. dialing codes
</td>
</tr>
。。。会更干净
将去掉过时的表示标记和使用布局表。
不能在字符串中间调用函数。您需要从函数调用中获取返回值,然后将其包含在字符串中
然而<tr>
<td align="right">
<label for="telephone">Telephone:</label>
</td>
<td>
<input type="text"
name="telephone"
id="telephone"
size="27"
value="<?php
echo htmlentities($row[telephone]);
?>">
Inc. dialing codes
</td>
</tr>
。。。会更干净
就像摆脱不推荐使用的表示性标记和使用表格进行布局一样。首先,不要在字符串中回显HTML。将代码与标记分开
<tr>
<td align="right">Telephone :</td>
<td><input type="text" name="telephone" size="27"
value="<?php echo htmlentities($row['telephone']); ?>"> Inc. dialing codes</td>
</tr>
首先,不要在字符串中回显HTML。将代码与标记分开
<tr>
<td align="right">Telephone :</td>
<td><input type="text" name="telephone" size="27"
value="<?php echo htmlentities($row['telephone']); ?>"> Inc. dialing codes</td>
</tr>
@workmad3:这不会像他在做PHP那样起作用
<?php echo '<tr>
<td align="right">' . Telephone . ' :</td>
<td><input type="text" name="telephone" size="27" value="' . htmlentities($row[telephone]) . '" /> Inc. dialing codes</td>
</tr>';
@workmad3:这不会像他在做PHP那样起作用
<?php echo '<tr>
<td align="right">' . Telephone . ' :</td>
<td><input type="text" name="telephone" size="27" value="' . htmlentities($row[telephone]) . '" /> Inc. dialing codes</td>
</tr>';
这将有助于:
<?php
echo " <tr>
<td align=\"right\">Telephone :</td>
<td><input type=\"text\" name=\"telephone\" size=\"27\" value=\"".htmlentities($row[telephone])."\"> Inc. dialing codes</td>
</tr>";
?>
顺便说一句,我还纠正了一些非常奇怪的语法,比如连接常量phone,它应该在字符串中。这些细节很重要,很容易破坏代码
此外,我建议在这样的字符串周围使用单引号,而不是双引号,这样就不必转义字符串中的所有双引号。这将起作用:
<?php
echo " <tr>
<td align=\"right\">Telephone :</td>
<td><input type=\"text\" name=\"telephone\" size=\"27\" value=\"".htmlentities($row[telephone])."\"> Inc. dialing codes</td>
</tr>";
?>
顺便说一句,我还纠正了一些非常奇怪的语法,比如连接常量phone,它应该在字符串中。这些细节很重要,很容易破坏代码
此外,我建议在这样的字符串周围使用单引号,而不是双引号,这样就不必转义字符串中的所有双引号。如果您只是想在hml中确保输出的安全性;您应该改用htmlspecialchars,因为它“只是”一个电话号码 htmlspecialchars$行[电话],ENT_报价
htmlentities有点慢,对于多字节字符来说没有那么好。但是我猜你没有解决这些问题,只是jet。如果你只是想在hml中保证输出的安全;您应该改用htmlspecialchars,因为它“只是”一个电话号码 htmlspecialchars$行[电话],ENT_报价
htmlentities有点慢,对于多字节字符来说没有那么好。但是我猜你不会直接解决这些问题。如果你想结合大量HTML和PHP变量,你可以做两件事 第一,使用HEREDOC结构
$txt = <<<HERETEXT
Put your HTML here.
HERETEXT;
echo $txt;
其次,使用第一个类变量命名函数,然后在herdoc中使用该变量
$he = 'htmlentities';
$txt = <<<HERETEXT
{$he($string, ENT_QUOTES, 'UTF-8')}
HERETEXT;
echo $txt;
但是,HTML不应该在非常大的块中处理,因为这样会增加严重错误的风险。此外,您可能会不必要地重复自己的操作。如果您想将大量HTML和PHP变量组合在一起,您可以做两件事 第一,使用HEREDOC结构
$txt = <<<HERETEXT
Put your HTML here.
HERETEXT;
echo $txt;
其次,使用第一个类变量命名函数,然后在herdoc中使用该变量
$he = 'htmlentities';
$txt = <<<HERETEXT
{$he($string, ENT_QUOTES, 'UTF-8')}
HERETEXT;
echo $txt;
但是,HTML不应该在非常大的块中处理,因为这样会增加严重错误的风险。此外,您可能会不必要地重复自己的操作。+不是PHP中的concat运算符,而是.should:value=\。htmlentities$行[电话]\改变。。。我已经有一段时间没有使用实际的PHP:+了,它不是PHP中的concat运算符,而是。应该是:value=\。htmlentities$行[电话]\改变。。。我已经有一段时间没有使用真正的PHP了:他的HTML在一个PHP字符串中,所以标记不起作用。另外,顺便说一句,使用短标记是一个坏主意,因为它们必须在php.ini中启用,您可能无法访问它。但是不应该将标记放在字符串中,请注意。当然,他在PHP标记中的HTML会起作用,因为他有一个回音。他的HTML在PHP字符串中,所以标记不会起作用。另外,顺便说一句,使用短标记是一个坏主意,因为它们必须在php.ini中启用,您可能无法访问它。不应该将标记放在字符串中,注意这点。当然,他的PHP标记中的HTML会起作用,因为他有回声。我同意只需要htmlspecialchars。当然,我希望您也在实现utf-8。我同意只需要htmlspecialchars。我当然希望如此
您也在实现utf-8。您应该使用htmlspecialchars,而不是htmlentities。当然,只要您正在实现utf-8,就应该使用htmlspecialchars,而不是htmlentities。当然,只要您正在实现utf-8。