-1

我整个上午都在试图解决这个问题,但没有任何效果。

基本上我要做的是获取一个网站,并特别从页面中提取一个链接。基本上,该网站是一个论坛,在页面的最底部有一个部分,上面写着“最新成员是MEMBERNAMEHERE )”。成员名称是一个链接,指向他们的用户资料。我能够从页面上获取链接,但是当我将正则表达式设置为从页面上删除每个链接时,它似乎并没有走那么远。我的代码:

$url = "[The forum's url goes here.]";
$input = file_get_contents($url) or die("Could not access file: $url");
$regexp = "The newest member is <a.*href=\"(.*?)\".*?\>(.*)\<\/a\>+/)";
preg_match_all("The newest member is /\<a.*href=\"(.*?)\".*?\>(.*)\<\/a\>+/)", $input, $match, PREG_SET_ORDER);
echo($match[0][2]);

我要在文档中匹配的是

The newest member is <a href="http://forumurl.com/profile/usernumber">MEMBERNAME</a>)

我需要将 MEMBERNAME 从上面的脚本中删除。该网址几乎位于页面的最底部,所以我想知道为什么它不能正常工作。

任何帮助是极大的赞赏。

4

1 回答 1

1

代码将改为:

$url = "[The forum's url goes here.]";
$input = file_get_contents($url) or die("Could not access file: $url");
$regexp = "/The newest member is \<a.*href=\"(.*?)\".*?\>(.*)\<\/a\>\)/";
preg_match_all($regexp, $input, $match, PREG_SET_ORDER);
echo($match[0][2]);

这成功回显:“会员名”。

但是,您需要注意同一案例不超过一个,或者如果您在多个论坛中这样做,您需要确保这是一致的。否则,您可以在正则表达式函数的开头或结尾包含更多代码。

您可以使用此正则表达式测试工具来帮助您,或许还可以了解更多有关 Regex 工作原理的信息。

于 2012-04-16T16:31:05.527 回答