PHP旋度和浏览器差异

PHP旋度和浏览器差异,php,curl,Php,Curl,当我在浏览器中键入addresswww.randomDomain.com并读取页面源代码时 我看到了 但当我想使用PHP Curl获取此页面的内容时 我在源代码中看到了这一点 有时,“符号会被”符号替换。为什么 这一原因导致使用正确的preg_match()模式时出现问题。您没有在浏览器中查看源代码(通常可以通过查看菜单(查看→ 开发商→ 在Chrome中查看源代码)。您正在查看DOM Inspector(内置于浏览器开发工具中),它显示DOM当前状态的类似HTML的表示,而不是原始HTML源代

当我在浏览器中键入address
www.randomDomain.com
并读取页面源代码时

我看到了

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

我在源代码中看到了这一点

有时,
符号会被
符号替换。为什么


这一原因导致使用正确的
preg_match()

模式时出现问题。您没有在浏览器中查看源代码(通常可以通过查看菜单(查看→ 开发商→ 在Chrome中查看源代码)。您正在查看DOM Inspector(内置于浏览器开发工具中),它显示DOM当前状态的类似HTML的表示,而不是原始HTML源代码。

一些站点随机“旋转”“标记、类名和其他使内容抓取更加困难的内容,可能这就是为什么有时会显示”的原因,因为”

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

都是有效的。解决方案是不使用regex解析HTML。改用类:

$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);

这个问题似乎离题了,因为我们没有管理troll.com,这个问题基本上是无法回答的,除了随机猜测。问问为troll.com创建html代码的人,他们为什么使用“有时”。也许他们不希望自己的代码被自动解析。你想错了问题。您遇到的问题是使用正则表达式来解析HTML,而不是使用
DOMDocument
。HTML允许您在属性中使用任何一种类型的引号。如果你正在编写解析HTML的代码,那么你必须能够处理这两种情况。troll.com只是随机的trollish示例,如果目的是让解析变得更困难,那么将
替换为
几乎毫无用处