PHP Echo输入值在斜线内部打破html斜杠系统

时间:2017-03-23 00:11:47

标签: php html

当我在输入值中使用不同的斜杠时,html斜杠系统正在破坏。

PHP

$val = "Brother's team say: " . '"Hello Man".';

HTML

<input value='<?php echo $val;  ?>' >

输出是:

<input value='Brother's team say: "Hello Man".' >

EDIT :::

我将输入更改为textarea。 Textarea正在努力。

 <textarea> <?php echo $val; ?> </textarea>

2 个答案:

答案 0 :(得分:1)

某些字符在HTML中具有特殊意义,如果要保留其含义,则应由HTML实体表示。

http://php.net/manual/en/function.htmlspecialchars.php

HTML最好用双引号书写。虽然可以使用单引号,但有时结果不是可预测的。

例如:

<?php
$val = "Brother's team say: " . '"Hello Man".';
?>
<!-- testing single qouted values  -->
<input value='<?php echo $val;  ?>' ><br>
<input value='<?php echo htmlspecialchars($val);  ?>' ><br>
<input value='<?php echo htmlentities($val);  ?>' ><br>
<!-- testing double quoted values -->
<input value="<?php echo $val;  ?>" ><br>
<input value="<?php echo htmlspecialchars($val);  ?>" ><br>
<input value="<?php echo htmlentities($val);  ?>" ><br>

将输出以下内容:

兄弟的团队说:

兄弟的团队说:&#34; Hello Man&#34;。

兄弟的团队说:&#34; Hello Man&#34;。

只有最后两个是正确的。答案是使用htmlentities或htmlspecialchars并更正html行:

旧:

<input value='<?php echo $val_double;  ?>' >

正确:

<input value="<?php echo  htmlspecialchars($val_double);  ?>" ><br>

答案 1 :(得分:0)

1.Solution Change输入到Textarea 我将输入更改为textarea。 Textarea正在努力。 但这不是最准确的解决方案。

HTML-PHP

<textarea> <?php echo $val; ?> </textarea>