我正在制作一个网页,只需在页面加载时重定向到其他网站列表中的一个.为了能够更轻松地编辑网站列表,我将列表移动到单独的文本文档中.将文件包含在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,而不将其打印到屏幕上?
你不应该!
将其解析为文本(例如,通过剥离空格的内容并用逗号分隔),或者不太优选地,使内容成为PHP代码,然后使用它来包含它include.
您可能应该坚持将文件解析为文本 - 您可以使用file()此功能.file()读取整个文件并将其内容作为行数返回(行末尾仍然附加).您可以使用此类数据执行任何操作(例如,将其从逗号和空格中删除).
如果你选择前者(包括TXT文件中的PHP代码,如果你想sites.txt公开提供这个是个坏主意),那么你应该尽量不污染全局命名空间.您可以使用其他答案提到的解决方案来实现它:
在sites.txt:
<?php
return 'your string goes here';
Run Code Online (Sandbox Code Playgroud)在你的脚本中:
<?php
$my_string = include('sites.txt');
Run Code Online (Sandbox Code Playgroud)eval()仅仅是为了提供信息而包含它.如果您的TXT文件中有PHP代码,则可以将eval()其用作PHP代码进行解析.但请记住 - eval()是邪恶的,不惜一切代价避免它.
| 归档时间: |
|
| 查看次数: |
10125 次 |
| 最近记录: |