浏览器更改标记并破坏我的CSS

时间:2014-01-14 17:21:32

标签: php html css

我有一个foreach循环:

echo "<span style=\"" . myCss($value) . "\">lol</span>";

变成(来源):

<span style="">lol</span>color: #999999;background-color: transparent;font-weight:normal;text-decoration: none;<span style="">...

为什么呢?如何防止浏览器?适用于Chrome和Firefox。请注意,它有一个在线的原因,我想通过javascript避免这样做。

3 个答案:

答案 0 :(得分:1)

试试这个

echo "<span style='" . myCss($value) . "'>lol</span>";

答案 1 :(得分:1)

如何分离PHP和HTML:

<span style="<?php echo myCss($value); ?>">lol</span>

注意我将PHP封装在引号内,而不是echo整行。在foreach循环中,它看起来像:

<?php
    foreach($array as $key => $value){
?>

<span style="<?php echo myCss($value); ?>">lol</span>

<?php
    }
?>

PHP和HTML的这种分离一直是我工作过的标准做法,我个人觉得它更加透明。

答案 2 :(得分:1)

在没有看到你的函数和变量值的情况下,我只假设回显结果中的字符搞乱了html。输出到html时,应始终使用htmlspecialschars()

echo "<span style=\"" . htmlspecialschars(myCss($value)) . "\">lol</span>";

虽然你可能会在你的功能中使用它。