Php 为什么这个preg_匹配返回空?

Php 为什么这个preg_匹配返回空?,php,preg-match,Php,Preg Match,我试图从这个URL获取ID,但它总是返回空的。这是我的密码: 这就是我正在查看的网站上的URL的外观: <b><a href="index.php?page=news&amp;id=32662f87eb22a90d81b2362c6ff458a57643eff1" ?和是特殊字符。您需要在它们之前添加一个\ $pattern = "#<b><a href=\"index\.php\?page=news&amp;id=(.*?)\"#i";

我试图从这个URL获取ID,但它总是返回空的。这是我的密码:

这就是我正在查看的网站上的URL的外观:

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

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

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

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


“我正试图从这个URL获取ID…”什么URL?您的示例中没有URL,因此它将始终为空。您确定输入正确吗?我认为输入的atributes比您的正则表达式要多。$openSite正在打开一个包含URL列表的网站,如my RegEx中的,我正在尝试获取所有ID。@AdrianPruss网站上的URL如下:确定吗?如果标记为

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