点击多个网址而不在php中获得响应

时间:2016-08-26 11:03:43

标签: php curl

我的数据库中有多个网址,想要点击它们而不使用php获得响应。

有没有办法做到这一点..

2 个答案:

答案 0 :(得分:1)

public function multiUrlUsingCurl($urls)
{
        $sg = curl_multi_init();

        $results = array();
        foreach ($urls as $key => $url) {

            $results[$key] = curl_init();
            curl_setopt_array($results[$key], array(
                CURLOPT_URL => $url,
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_FOLLOWLOCATION => true
            ));

            curl_multi_add_handle($sg, $results[$key]);
        }

        $flag = null;
        do {
            $status = curl_multi_exec($sg, $flag);
        }
        while ($flag);

        foreach ($results as $res) {
            echo curl_multi_getcontent($res);
            curl_multi_remove_handle($sg, $res);
            curl_close($res);
        }

        curl_multi_close($sg);
}

答案 1 :(得分:0)

然后你必须将你的条目保存在一个文件中,无论是ASCII格式还是像json这样的序列化字符串,你都可以将它保存为xml。但我建议你像json字符串一样保存它。它很简单。

编辑:

帮助您入门的快速摘录:

function getUrlList($fileName)
{
    if(file_exists($fileName)) {
        return json_decode(file_get_contents($fileName), true);
    }
    return array();
}

function saveUrl($fileName, $newUrl)
{
    if(file_exists($fileName)) {
        $list = json_decode(file_get_contents($fileName), true);
        $list = array_merge($list, $newUrl);
        file_put_contents($fileName, json_encode($list));
        return true;
    }
    return false;
}

$fileName = 'myFileDB.json';
$UrlToSave = array('id' => uniqid(), 'url' => someUrlYouWantToSave);
saveUrl($fileName, $urlToSave);    // To save Url

// To get List
$urlsList = getUrlList($fileName);

从那里,您可以扩展功能以编辑网址或使用其他操作来操纵数据。您还必须确保在要保存URL的文件中有一个空的json字符串。你要写一些逻辑来做到这一点,或者为了简单起见将{}放在一个文件中。