如何在PHP中包含PHP文本文件而不打印到页面?

Jac*_*cob 4 php

我正在制作一个网页,只需在页面加载时重定向到其他网站列表中的一个.为了能够更轻松地编辑网站列表,我将列表移动到单独的文本文档中.将文件包含在PHP代码中后,浏览器会在包含结束时恢复解析HTML并再次返回.结果,我的代码被打印到屏幕而不是执行.我无法在文本文件中实现PHP标头和标签,因为这会使其保持外部的目的.现在我有了另一个脚本,如果我想添加它们,我可以将链接添加到文件中.

index.php,我正在使用的文件

    <?php 
        $array_content = array(include 'sites.txt');
        header("location: ".$array_content[rand(0,9)]);
    ?> 
Run Code Online (Sandbox Code Playgroud)

sites.txt,我包含的文件

    "http://www.nsa.gov/"
    ,"http://www.youtube.com/watch?v=oHg5SJYRHA0"
    ,"http://leekspin.com/"
Run Code Online (Sandbox Code Playgroud)

有没有办法只将文本文件插入index.php,而不将其打印到屏幕上?

ziz*_*ozu 9

你不应该!

将其解析为文本(例如,通过剥离空格的内容并用逗号分隔),或者不太优选地,使内容成为PHP代码,然后使用包含它include.

将TXT文件解析为文本

您可能应该坚持将文件解析为文本 - 您可以使用file()此功能.file()读取整个文件并将其内容作为行数返回(行末尾仍然附加).您可以使用此类数据执行任何操作(例如,将其从逗号和空格中删除).

包含文件中的PHP代码

如果你选择前者(包括TXT文件中的PHP代码,如果你想sites.txt公开提供这个是个坏主意),那么你应该尽量不污染全局命名空间.您可以使用其他答案提到的解决方案来实现它:

最坏的解决方案 - eval()

仅仅是为了提供信息而包含它.如果您的TXT文件中有PHP代码,则可以将eval()其用作PHP代码进行解析.但请记住 - eval()是邪恶的,不惜一切代价避免它.