我刚刚开始学习如何使用正则表达式从网站中提取数据。我的第一个目标是提取网站的标题。这是我的代码的样子:
<?php
$data = file_get_contents('http://bctia.org');
$regex = '/<title>(.+?)<\/title>/';
preg_match($regex,$data,$match);
var_dump($match);
?>
var_dump 的结果为空:
array(0) { }
起初我想,“也许 bctia.org 没有标题”?然而,事实并非如此,因为我检查了 bctia.org 的来源,它确实有 和 之间的<title>
内容</title>
。
然后我想,也许我的代码不起作用?但是,情况也并非如此,因为我已经bctia.org
用其他网站替换了,例如bing.com
,或apple.com
,它们都返回了正确的结果。例如,apple.com
我得到了正确的结果
array(2) { [0]=> string(20) "" [1]=> string(5) "Apple" }
所以我必须得出结论,这bctia.org
是一个非常特殊的网站,它阻止我提取它的标题......
我想知道是否真的是这样?或者也许我的代码有一些我没有发现的问题?
先感谢您!