将参数发送到其他站点

时间:2010-05-24 13:38:52

标签: php

这个问题与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

3 个答案:

答案 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中使用此功能,则会将所有传入的获取网址参数转发到您的网址。