PHP卷曲和浏览器的区别

时间:2014-07-31 12:24:01

标签: php curl

当我在浏览器中键入地址www.randomDomain.com并阅读页面源时,

我看到<tag attrib1="value" attrib2="value2">

但是当我想使用PHP Curl获取此页面的内容时,

我在源<tag attrib1="value" attrib2='value2'>

中看到了这一点

有时,"符号会被'符号替换。为什么呢?

这个原因会导致使用preg_match()的正确模式出现问题。

3 个答案:

答案 0 :(得分:3)

您没有在浏览器中查看源代码(通常可以通过“查看”菜单(“查看”→“开发人员”→“在Chrome中查看源代码”)找到该源)。您正在查看DOM Inspector(内置于浏览器开发人员工具中),它显示了DOM当前状态的HTML表示,而不是原始HTML源代码。

答案 1 :(得分:2)

"'都有效。解决方案是不使用正则表达式来解析HTML。请改用DomDocument类:

$url = 'http://www.example.com';

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl)

$html = new DOMDocument;
$html->loadHTML($output);

答案 2 :(得分:-1)

有些网站会随机“轮换”标签,类名和其他内容,使内容抓取更加困难,这可能就是“因为”有时会显示“

我不相信curl会改变源代码中的任何内容(使用curl 10年),所以如果这是您遇到的唯一问题,您可以轻松修改preg_match规则以查找“OR”