Php 使用fopen两次

Php 使用fopen两次,php,fopen,Php,Fopen,我想用open打开2个url $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)) {

我想用open打开2个url

$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);
}

谢谢

不,那不行,因为
句柄
是一种资源,而不是您试图打开的网页的内容

如果要将内容连接在一起,需要打开第一个URL,获取内容,打开第二个URL,获取内容,然后连接内容

如果在第一次打开时完成了所有操作,但不能将一个句柄同时连接到两个URL,则可以在第二次打开时重复使用
handle
。您当然不能通过连接它们来实现这一点


如果您想同时访问这两个URL,只需使用两个不同的资源句柄。

好吧,不,这不起作用,因为
handle
是一个资源,而不是您试图打开的网页的内容

如果要将内容连接在一起,需要打开第一个URL,获取内容,打开第二个URL,获取内容,然后连接内容

如果在第一次打开时完成了所有操作,但不能将一个句柄同时连接到两个URL,则可以在第二次打开时重复使用
handle
。您当然不能通过连接它们来实现这一点


如果您想同时访问这两个URL,只需使用两个不同的资源句柄。

您不能连接句柄。如果需要实际的文件内容,则需要使用
fread()
(或仅使用
文件获取内容()
)。

无法连接句柄。如果需要实际的文件内容,您需要使用
fread()
(或者只使用
文件获取内容()
fopen
返回一个资源句柄,您以后可以使用它来读取(或写入)。

也许您需要这样做
fopen
返回一个资源句柄,稍后您可以使用该句柄进行读取(或写入)。

您可以尝试以下操作:

$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);

}

您可以尝试以下方法:

$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);

}

“不工作”是什么意思?为什么不使用两个句柄?@j08691我已经添加了一段与我为什么需要加入它们相关的代码。什么是“不工作”以及为什么不使用两个句柄?@j08691我已经添加了一段与我为什么需要加入它们相关的代码