1.php<?php
    include('2.php');
?>
2.php:<html>
<head>
</head><body>
aaaaaaaa
</body>
</html>
访问1.php的时候可以显示出aaaaaaaa。但是我有一个问题,在1.php中,include()方法实质上不就是把2.php的内容替换include(2.php)吗?即:<?php
    <html>
    <head>
    </head>    <body>
    aaaaaaaa
    </body>
    </html>?>这样读肯定是会报错的啊,怎么回事呢??谢谢!

解决方案 »

  1.   

    经测试,include()和require()在包含html文件时,是将结果包含进去,即:
    <?php
     echo"aaaaaaaa";
    ?>
      

  2.   


    <?php
        <html>
        <head>
        </head>    <body>
            aaaaaaaa
        </body>
        </html>?>
    //看清楚你的php标签,<?php 这里是放合法的php代码,而你放了html ?>
      

  3.   

    <?php
        include('2.php');
    ?>等效于
    <?php
    ?>
    2.php 的内容
    <?php
    ?>这也说明,虽然 include 的是 php 代码文件,但文件中依然要以 <?php 开头
      

  4.   

    可是我如果在2.php的body里写成:
    <body>
        <?php echo 123; ?>
        aaaaaaaaa
    </body>
    访问1.php的时候也可以正常输出,此时include()方法是这样的吗:
    <?php
        ...    echo '<body>';
        echo 123;
        echo 'aaaaaaaaa';
        echo '</body>';    ...
    ?>
    是啊我问题里不是写了吗“这样读肯定是会报错的啊”,我是问为什么include()包含进来的HTML文件就不报错呢?
      

  5.   

    那就等效于1.php文件内容是:<?php
    <?php
        <html>
        <head>
        </head>    <body>
    aaaaaaaa
        </body>
        </html>
    ?>
    ?>
    这样仍然报错
      

  6.   

    你确定没看错?<?php
    //php.php
    include("html.php");
    ?>
    <!-- html.php -->
    <html> <head> </head> <body> <?php echo "alkdsfj"; ?>aaaaaaa </body> </html>
    我的输出是: alkdsfjaaaaaaa 
      

  7.   

    不是,你的回答不是“经测试,include()和require()在包含html文件时,是将结果包含进去”吗?
    如果按照这个理解,那就是:<?php
    //php.php
    <html> <head> </head> <body> <?php echo "alkdsfj"; ?>aaaaaaa </body> </html>
    ?>
    这样会报错我说的。