Php 如何将preg match、match存储到变量中

Php 如何将preg match、match存储到变量中,php,regex,preg-match,Php,Regex,Preg Match,好的,我想知道如何将preg_匹配存储到变量中,只有当字符串本身具有匹配的preg_匹配时 例如: $string1 = "this is some example id=34 "; preg_match('/^id=(\d+)/', $string1); 仅当$string1包含id=somenumber时,我才想将id=34或id=somenumber存储到变量中 到目前为止,我一直在玩弄这个问题,但到目前为止,我得到的答案不是真的,就是假的/布尔值,这不是我想要的,在这种情况下,他们会

好的,我想知道如何将preg_匹配存储到变量中,只有当字符串本身具有匹配的preg_匹配时

例如:

$string1 = "this is some example id=34 ";
preg_match('/^id=(\d+)/', $string1); 
仅当$string1包含id=somenumber时,我才想将id=34或id=somenumber存储到变量中 到目前为止,我一直在玩弄这个问题,但到目前为止,我得到的答案不是真的,就是假的/布尔值,这不是我想要的,在这种情况下,他们会告诉你,
preg_match()
接受第三个参数:

preg_match('/^id=(\d+)/', $string1, $matches); 

之后,
$matches[1]
将包含匹配的ID(
'43'
)和
$matches[0]
匹配的整个字符串(即在您的示例中,
'ID=34'
)。

为什么要存储整个字符串?如果要有多个值,最好将它们存储在一个数组中,这样就可以轻松访问实际值,而不必使用字符串函数拆分名称和值。
preg_replace
可以使用正则表达式执行替换,
preg\u replace\u callback
允许您调用一个函数,该函数接收匹配的值作为参数(并返回替换值,当然可以为空)。不,它会回显整个字符串,我只想回显所有内容,但
id=34