php的回声是做什么的?

问题描述 投票:-5回答:2

我是php的初学者,我想知道echo是做什么的。在不同的情况下,它似乎做了很多不同的事情。这证明了我的意思。 index.php文件:

<!DOCTYPE html>
<html>
<body>
    <?php
        echo "echoed by php";
    ?>
    <button onclick="buttonClick()">Get stuff from server</button>
    <p id="output"></p>
    <script>
        function buttonClick()
        {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    document.getElementById("output").innerHTML = this.responseText;
                }
            };
            xmlhttp.open("GET", "backend.php", true);
            xmlhttp.send();
        }
    </script>
</body>
</html>

backend.php:

<?php
    echo "stuff from server";
?>

第一个echo(index.php中的一个)与js中的document.write类似:它显示一些东西。然而,backend.php中的echo似乎是responseText。 到底发生了什么? backend.php中的echo是否编译成纯文本?如果是,那会自动成为响应文本吗?

php html server-side
2个回答
0
投票

Echo只是输出它给出的字符串,如果在浏览器中查看它会将字符串输出到浏览器,如果它是通过命令行,那么它将输出字符串到命令行。

在index.php和backend.php中,echo在两者中做同样的事情,区别在于你发送一个GET请求来获取backend.php的内容,但是你直接在浏览器中查看index.php echo 。

如果您在浏览器中直接查看backend.php,您将以与index.php相同的方式查看回声。

当然,更常见的是你会在backend.php中返回一些数据的JSON响应,使用json / _encode在索引中使用JS显示。

我希望这有帮助

编辑:直接回答你,没有编译,echo只是打印出字符串。但是,是的,echo字符串是响应


0
投票

Echo只是将字符串发送到输出缓冲区。还有许多其他“事物”可以做到这一点,如printprintfvar_exportvar_dumpprint_r for arrays等。每个都有自己的“特征”。

你们两者之间的混淆是你忽略了这样一个事实,即PHP文件中的HTML是在读取该文件时输出的。因此,随着echo内联到它输出HTML它会点击一些PHP代码并且服务器执行导致那里的一点输出,然后它继续输出HTML。因此,最后您将获得HTML + PHP输出作为源。

在第二个示例中,唯一的输出来自PHP中的echo。但两者都转到输出缓冲区,最终作为响应的主体发送回客户端。

希望有道理。

© www.soinside.com 2019 - 2024. All rights reserved.