PHP:代码变成HTML <! - 评论? - >

时间:2012-02-20 21:42:13

标签: php javascript html

当我输入这样的代码时:

<p>Hello <? echo $name; ?>, How are you?</p>

打印:

<p>Hello <!--? echo $name; ?-->, How are you?</p>

作为评论。我把它放在一个名为base.js的文件中,代码如下:

function showName() {
   document.getElementById("name").innerHTML = "<p>Hello <? echo $name; ?>, How are you?</p>";
}

所以我像这样嵌入.js文件:

<script type="text/javascript" src="base.js"></script>

所以,在改变<p id="name"></p>之后我得到了:

<p id="name">Hello <!--? echo $name; ?-->, How are you?</p>

我在.php文件中有代码,它似乎工作正常。现在我将它放在一个单独的base.js文件中,它就不再起作用了。救命啊!

4 个答案:

答案 0 :(得分:6)

那是因为它不再是php。

更改为

<script type="text/javascript" src="base.php"></script>

and have a 
<?php header("content-type:text/javascript"); 
$name = "...";
?>

function showName() {
   document.getElementById("name").innerHTML = "<p>Hello <?php echo $name; ?>, How are you?</p>";
}

或者

更改为

function showName(name) {
   document.getElementById("name").innerHTML = "<p>Hello "+name+", How are you?</p>";
}

并且在php文件中有

<script>
// using json_encode to make the string safe for script injection. 
// Still needs quotes for a single string
showName("<?php echo json_encode($name); ?>");
</script>

答案 1 :(得分:0)

PHP在服务器端处理,而不是在客户端处理。您无法在客户端执行PHP代码。

答案 2 :(得分:0)

这一切都无法在JS中运行php。 第二个是你必须做这样的smth以避免评论问题:

//<![CDATA[
    function showName() {
       document.getElementById("name").innerHTML = "<p>Hello <? echo $name; ?>, How are you?</p>";
    }
//]]>

答案 3 :(得分:0)

从 2021 年开始:

1-你可以使用jsphp

2- CDATA 已弃用。