代码之家  ›  专栏  ›  技术社区  ›  hookedonwinter

使用include()加载不同的页面内容在本地的行为与托管的行为不同

  •  2
  • hookedonwinter  · 技术社区  · 14 年前

    我有一个实时站点,其中包含不同的PHP文件,具体取决于用户试图访问的页面。页眉和页脚相同,但如果用户请求,则在文件中 filename1.php VS filename2.php 在页面内容中加载不同的PHP。基本的CMS材料。

    在现场,它工作得很好。我刚建立了一个本地开发环境,但它不起作用。应该加载到页面中间的文件是唯一加载的文件。我说得不好。下面是一个例子:

    它的工作方式:

    <html>
        <head>
            Stuff
        </head>
    
        <body>
            More stuff
            <? include( 'some_file.php' ); ?>
        </body>
    </html>
    

    本地工作方式:

    <? include( 'some_file.php' ); ?>
    

    只加载该文件,不加载其他内容。

    有没有想过为什么要加载一个页面,而不是周围的内容?如果我解释得不好,请告诉我。

    编辑:

    这也许是一个更好的解释?或者不……不管怎样,它就像包含的页面,而不是加载 进入之内 正在加载索引文件的中间部分 而不是 索引文件。

    编辑2:

    这是现场直播,可以在 http://saloncosabella.com/our_team/meet_our_team : live http://img.skitch.com/20100510-j36r58pu6kjrmekexixh81f96i.jpg

    这里是当地的情况: local http://img.skitch.com/20100510-q29f2uq34g5pp68w5ke77dddks.jpg

    显示在本地站点上的HTML(我知道,不是所有的HTML都很漂亮):

                        <a href="/our_team/meet_our_team?stylist=jamie.staton"><img src="/images/our_team/jamie.staton.png" class="thumbnail first_thumb" /></a><a href="/our_team/meet_our_team?stylist=torrey.staton"><img src="/images/our_team/torrey.staton.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=brittany.benallo"><img src="/images/our_team/brittany.benallo.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=victoria."><img src="/images/our_team/victoria..png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=tiahna.cristobal"><img src="/images/our_team/tiahna.cristobal.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=christina.walker"><img src="/images/our_team/christina.walker.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=kristen.pulst"><img src="/images/our_team/kristen.pulst.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=allison.canino"><img src="/images/our_team/allison.canino.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=lia."><img src="/images/our_team/lia..png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=alex.woodworth"><img src="/images/our_team/alex.woodworth.png" class="thumbnail" /></a><a href="/our_team/meet_our_team?stylist=lauren.hassett"><img src="/images/our_team/lauren.hassett.png" class="thumbnail" /></a><a href="?stylist_page=1"><img src="/images/our_team/see_more.png" alt="See More" class="thumbnail" ></a>             <div class="clear"></div> 
    
    5 回复  |  直到 14 年前
        1
  •  2
  •   Vanco    14 年前

    比较两台服务器上的phpinfo()输出。看看有什么不同。 也许这样你就能确定为什么会发生这种情况。

    另外,您可以尝试第三个服务器——可能是已经为LAMP预配置的某个虚拟机。看看会发生什么。

    最后,尝试制作一个简单的测试用例,比较测试结果。

        2
  •  0
  •   ZZ Coder    14 年前

    可能短标记在本地服务器上被禁用。检查这个变量,

    short_open_tag
    
        3
  •  0
  •   Marc B    14 年前

    您的脚本是否使用输出缓冲?如果标题区域启用缓冲,并且“中间”包含 ob_end_clean() 并且不会保留返回的缓冲区数据,即使所有内容都正确生成,也会显示为仅显示中间的include。

        4
  •  0
  •   fjfnaranjo    14 年前

    非常疏远…

    似乎Web服务器没有输出PHP标记之外的任何内容…

    或者,在需要PHP模块之前,输出不会启动。

    你能加上文字吗 <?php echo "hi"; ?> 在本地文件的第一行检查它是否工作?

        5
  •  0
  •   Siriss    14 年前

    在您的PHP代码中有出口吗?删除php中的任何出口都为我解决了这个问题。