是否可以使用PHP生成JavaScript以成功生成PHP?

时间:2014-06-04 12:31:46

标签: javascript php

使用PHP生成JavaScript按预期工作,并使用JavaScript生成PHP按预期工作,但是使用PHP生成JavaScript来生成PHP似乎不起作用。

我的代码是否存在导致此失败的问题,或者是某种限制?


<!-- Use JavaScript to generate PHP --> 

<script type='text/javascript'>
    function addComment()
    {
        alert("About to add some content");
        document.write("<?php testFunction(); ?>");
    }
</script>

<!-- Use PHP to generate JavaScript to generate PHP --> 

echo "<script type='text/javascript'>";
    echo "function addComment2()";
    echo "{";
        echo 'alert("About to add some content");';
        echo 'document.write("<?php testFunction(); ?>");';
    echo "}";
echo "</script>";

(testFunction()只包含echo "Test";

3 个答案:

答案 0 :(得分:3)

PHP是在服务器端执行的代码。 JavaScript是在客户端执行的代码。他们对另一方一无所知。

您可以使用PHP生成几乎任何您想要的内容。

你的问题是第四个回声:

    echo 'document.write("<?php testFunction(); ?>");';

你告诉echo打印这个字符串:

document.write("<?php testFunction(); ?>");

字符串将发送到客户端(和浏览器)。浏览器(javascript引擎)运行此代码并产生如下输出:

<?php testFunction(); ?>

我们已经在你的服务器上留下了php解释器,因为我们已经在客户端了。客户不能对此有所了解。

如果您用以下内容替换您的行:

    echo 'document.write("', testFunction() ,'");';

您的代码将按预期执行。

但是为此你改变了你的testFunction。只需替换

function testFunction() {
    return "Test";
};

,服务器的输出将是

    document.write("Test");

答案 1 :(得分:0)

使用JavaScript生成PHP不起作用。在第一种情况下,它首先作为php执行,因此运行testFunction(),这个结果javascript被发送到浏览器并执行。

答案 2 :(得分:0)

您似乎不了解Server-Client模型。 Javascript在客户端上执行,而PHP在服务器上执行。客户端无法执行PHP,也无法将PHP代码发送到要执行的服务器。这是不可能的。