【问题标题】:What are the performance related issues of PHP curlPHP curl 的性能相关问题有哪些
【发布时间】:2024-04-10 18:00:02
【问题描述】:

我的客户想要提取实时网页的 html 内容并在他的服务器中制作 html 页面的副本。我正在考虑使用 curl,当我打算使用 curl 时是否存在任何性能问题?会不会占用大量服务器内存。

如果 PHP curl 存在性能问题,最好的替代方法是什么?

我打算在用户以表单形式提交 Web URl 时下载该页面。我托管网络的服务器位于 linux 平台中。

提前感谢您!

【问题讨论】:

  • 什么时候下载页面?定期?在每个页面加载时?
  • 当 web url 提交到表单时
  • 性能实际上取决于您与其他网站的网络连接,我使用 CURL 加载数千个 URL 作为 php 蜘蛛来索引我的网站以供搜索......如果它不在主机服务器它需要更长的时间......在服务器上它的索引它的快速......它都是相对的。尝试一些选项并为您的项目进行基准测试。

标签: php curl php-5.4


【解决方案1】:

我会使用 wget 来代替快速而肮脏的解决方案(在 linux 上)

wget -r 

请不要在使用 PHP 时提及性能。如果你想开始问这些问题,也许你应该研究网络编程。作为一个喜欢玩网络编程的人,我应该警告你,这不是一个简单的话题。

【讨论】:

  • 您提倡使用非跨平台工具而不是 PHP 的 cURL 包装器?
  • 跨平台被高估了(也不是微不足道的)。他在用窗户吗? BeOS 呢?很有可能,他已经在使用 linux。如果没有,他要求另一种方法来获得快速解决方案。你有 Windows 的 wget 替代品吗?您是否建议编写一个完整的网络爬虫,以便他也可以在 Windows 上运行它?
  • 好的,我使用的是 linux 服务器。 wget -r 可以在php中作为php执行命令使用吗?
  • 没错。 php.net/manual/en/function.system.php 如果您这样做,我会非常小心地对此输入进行大量验证。应谨慎使用在 shell 上运行的用户驱动输入。
  • @Homer6 并不是说​​ OP 不应该使用它。只是认为答案应该包括它可能无法移植到 Windows 的警告。对于过滤任何用户输入,有escapeshellarg()