繁体   English   中英

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

[英]PHP: Code gets turned into HTML <!— Comments? -->

当我输入这样的代码时:

<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文件中,它就不再起作用了。 救命!

那是因为它不再是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>

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM