English 中文(简体)
PHP5网页扫描(简单DOM解析器|| file_get_contents()+正则表达式)。。。资源方面
原标题:PHP5 webpage scan (simple DOM parser || file_get_contents()+regexp)... resources wise

我正在考虑一个脚本,它可以扫描10多个网站,在特定的div中查找特定的内容。假设它将被适度使用,每天大约400次搜索。

标题中的两个选项中,哪一个可以更好地支持负载、占用更少的资源并提供更好的速度:

从每个网站创建DOM,然后针对特定的div id迭代每个网站

creating a string from the website with file_get_contents, and then regexping the needed string.

为了更具体地说明我需要执行什么样的操作,请听以下内容,

Additional question: Is regexp capable of searching the following occurrence of the given string:

<div id="myId"> needed string </div>

以识别具有给定ID的标签,并仅返回标签之间的内容?

请只回答是/否,如果可能的话,我将打开一个关于语法的单独问题,这样就不会全部捆绑在这里了

最佳回答
  1. 速度将取决于您的服务器和有问题的页面;与下载要扫描的页面的时间相比,两种方式的执行时间都可以忽略不计。

  2. 如果使用DOM/XPath,那么这件事在3行代码中是可行的。

问题回答

对于每天400次搜索,您使用的哪种方法在性能方面相当无关紧要。

在任何情况下,最快的方法都是file_get_contents+strpos+substr,除非您的位置+提取算法足够复杂。根据特定的正则表达式,它可能比DOM快,也可能不比DOM快。DOM可能是一种比正则表达式更可靠的方法,但这取决于页面的格式良好程度(libxml2并不完全模仿浏览器解析)。





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签