这个问题与to this post有关。让我稍微改变一下这个问题,我没有真正解释自己。我打算做的是让z.php读取一个名为'sites.txt'的文本文件,其中包含一个站点列表:
site1.com/a.php
site2.com/b.php
site3.com/c.php
在'sites.txt'中执行网站中的网址我希望它通过siteA.com/z.php?ip=xxx.xxx.xx.xxx&location=UK
(z.php然后会读取'sites.txt')。 'sites.txt'文件中的所有网站都将作为
site1.com/a.php?ip=xxx.xxx.xx.xxx&location=UK
site2.com/b.php?ip=xxx.xxx.xx.xxx&location=UK
我试过环顾四周但找不到我要找的东西。
site3.com/c.php?ip=xxx.xxx.xx.xxx&location=UK
答案 0 :(得分:2)
这样的事情(未经测试)?
$handle = fopen("sites.txt", "r");
while (!feof($handle)) {
$site = fgets($handle);
$sitestats = fopen(trim($site) . "?ip={$_GET['ip']}&location={$_GET['UK']}", 'r');
}
fclose($handle);
您可能也希望验证GET变量
答案 1 :(得分:1)
HTTP请求
使用cURL库从z.php中搜索其他网站。
cURL允许您从PHP脚本中向其他Web服务器发出HTTP请求。
IP地址
您可以使用$_SERVER['REMOTE_ADDR']
获取客户端IP地址。如果从用户输入获得IP地址,则必须对其进行过滤。
阅读文本文件
读取文件的最简单方法可能是使用file()
函数,该函数将每行读入数组元素。以下代码行删除换行符并忽略空行。
$lines = file('sites.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
然后你只需遍历这些行并做你需要做的事情:
foreach($lines as $line) {
echo $line;
}
答案 2 :(得分:0)
您可以使用file_get_contents结合环境变量查询字符串来执行此操作:
<?php
// read your site urls into an array, each line as an array element
$sites = file('sites.txt');
// walk thru all sites, one at a time
foreach ($sites as $site) {
// combine your incoming query string (?ip=...&location=...) with your site, by appending it to $site
$site .= '?' . getenv('QUERY_STRING');
// prepend $site with http:// if it is not in your text file
if ( substr($site, 0, 4) != 'http' ) {
$site = 'http://' . $site;
}
// open the url in $site
$return = file_get_contents ($site);
}
如果您在z.php中使用此功能,则会将所有传入的获取网址参数转发到您的网址。