我想使用open
打开2个网址$url = 'http://xtreme-jumps.eu/demos.txt';
$url2 = 'http://cosy-climbing.net/demoz.txt';
这样的东西......但它不起作用
$handle = @fopen($url, "r");
$handle .= @fopen($url2, "r");
我需要加入他们,因为稍后我会在那里搜索
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $map) !== FALSE)
$matches[] = $buffer;
}
fclose($handle);
}
由于
答案 0 :(得分:2)
您无法连接句柄。如果您想要实际的文件内容,则需要使用fread()
(或仅file_get_contents()
)。
答案 1 :(得分:1)
嗯,不,这不起作用,因为handle
是一个资源,而不是您尝试打开的网页的内容。
如果您想一起加入内容,您需要打开第一个网址,获取内容,打开第二个网址并获取内容,然后加入内容。
如果您在第一次操作中完成所有操作,则可以重复使用handle
进行第二次打开,但是您不能同时将一个句柄连接到两个URL。你当然不能通过尝试连接它们来做到这一点。
如果要同时访问这两个URL,只需使用两个不同的资源句柄。
答案 2 :(得分:1)
您可以尝试这样的事情:
$handles=array();
$handles[]=@fopen($url, "r");
$handles[]=@fopen($url2, "r");
foreach($handles as $handle){
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $map) !== FALSE)
$matches[] = $buffer;
}
fclose($handle);
}
或更好:
$urls=array(
'http://xtreme-jumps.eu/demos.txt',
'http://cosy-climbing.net/demoz.txt'
);
foreach($urls as $url){
$handle=@fopen($url, "r");
while (!feof($handle))
{
$buffer = fgets($handle);
if(strpos($buffer, $map) !== FALSE)
$matches[] = $buffer;
}
fclose($handle);
}
答案 3 :(得分:0)
也许您想要file_get_contents()
? fopen
返回一个资源句柄,稍后您可以使用它来读取(或写入)。