Php 如何提高下面代码的速度?

Php 如何提高下面代码的速度?,php,performance,Php,Performance,我试图使用代码blow将一些页面的标题与它们的URL进行比较。如果我只有一个链接就可以了。。但是如果我尝试搜索多个链接,速度会非常低。。我得等很久。你知道如何改进吗 $link = LINK; $page_content = file_get_contents($link); if(preg_match('/<title>/', $

我试图使用代码blow将一些页面的标题与它们的URL进行比较。如果我只有一个链接就可以了。。但是如果我尝试搜索多个链接,速度会非常低。。我得等很久。你知道如何改进吗

                $link = LINK;
                $page_content = file_get_contents($link);

                    if(preg_match('/<title>/',
                        $page_content, $matches)) {

                        if ( ! isset($matches[1])) {
                            echo "Page found" ;
                        }
                    } else {
                        echo "Page not found.";
                    }
                
$link=link;
$page\u content=file\u get\u contents($link);
如果(preg_)匹配(“/”,
$page_content,$matches)){
如果(!isset($matches[1])){
回显“找到页面”;
}
}否则{
echo“未找到页面。”;
}
简短解释
file\u get\u contents
速度很慢,用它刮取多个URL是疯狂的,您必须同步等待单个请求完成,然后再发出另一个请求


解决方案 使用multi-curl一次打开多个连接,并使用
CURLOPT_WRITEFUNCTION
异步收集响应


基准 让我们尝试通过删除12个GitHub链接来对它们进行基准测试。这个基准测试表明,multi-curl可以比
file\u get\u contents
快大约12.19倍来抓取12个GitHub URL。我相信随着链接数量的增加,差异会急剧增加


文件获取内容基准 文件:single.php
使用
文件获取内容()。因此,您取决于获取内容所需的时间。您可以将其缓存一段时间,但不会总是实时结果。可能是因为您尝试创建了一个示例,但这里没有比较。代码与问题不匹配?@Steven怎么不匹配?如果您创建了一个带有一些链接的数据库并运行了该代码,您将看到代码将有很多时间运行。我不明白你的意思。你的代码不会比你已经建议的更有效。速度在很大程度上取决于每个url页面的大小(因为您必须下载整个url内容)以及服务器与url页面之间的连接速度。我的意思是,您的代码只是检查是否存在
标记。它一点也不比较?它的速度很快,但是如果标题在url内,它就不会进行比较“如果标题在url内,则进行比较”是什么意思?它坦率地检查响应是否包含
。是的,但某些页面的标题页未找到,url类似。因此,我试图做的是取消标题,并检查是否可以在url上找到,因此返回可以是是,它是,或是不是。您只需自定义验证,如果您看到标题上的“未找到页面”,然后返回“否”。这里的重点是性能,您真的应该根据自己的需要调整给定的解决方案。对不起,占用了您的时间。。但我真的不明白如何得到标题作为变量来检查它,使用您的解决方案。。。如果你能在这方面给我一点帮助,我将不胜感激。