为什么这个preg_match返回空?

时间:2014-05-11 16:22:10

标签: php preg-match

我正在尝试从此网址获取ID,但它一直空着。这是我的代码:

这就是我正在查看的网站上的网址:

<b><a href="index.php?page=news&amp;id=32662f87eb22a90d81b2362c6ff458a57643eff1"

这是我的PHP

$pattern = "#<b><a href=\"index.php?page=news&amp;id=(.*?)\"#i";
preg_match_all($pattern,$openSite,$match);

3 个答案:

答案 0 :(得分:1)

? . 是特殊字符。您需要在它们之前添加 \

$pattern = "#<b><a href=\"index\.php\?page=news&amp;id=(.*?)\"#i";

答案 1 :(得分:0)

$pattern = "#\<b\>\s*\<a\s+href\=\"index\.php\?page\=news\&amp\;id\=([^\"\&]*)#i";

答案 2 :(得分:0)

您可以使用更简单的模式:/id=(.*)$/

<?php

$openSite = '<b><a href="index.php?page=news&amp;id=32662f87eb22a90d81b2362c6ff458a57643eff1"';
$pattern = "/id=(.*)$/";
preg_match_all($pattern,$openSite,$match);
print_r($match[1])

?>

<强>输出

Array
(
    [0] => 32662f87eb22a90d81b2362c6ff458a57643eff1"
)