我有一个链接,类似于以下内容:
$link = 'http://www.example/data/showall.php?quantity=&lang=eng&sura=2&ayat=21';
现在我想要它的第一个数字,在这种情况下,我想要2
。
注意:除数字外,所有字符都是固定的。
为了简化我的字符串,我可以将第一个字符串替换为空字符串,如下所示:
$link ='2&ayat=21';
现在我想要2
。
我可以通过regex:/'d+/
来做到这一点。但我不想删除它,我想要它,我该怎么做?
尝试获取捕获的第一个数字:
[^0-9]*('d+)
演示
PHP Code:
<?php
$link = 'http://www.example/data/showall.php?quantity=&lang=eng&sura=2&ayat=21';
preg_match('/[^0-9]*('d+)/',$link,$matches);
echo $matches[1];
?>
Output:
2
如果您不想使用REGEX,
$url = 'http://www.example/data/showall.php?quantity=&lang=eng&sura=2&ayat=21';
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
$first = array_filter($array, function($v){
return is_numeric($v);
});
var_dump(array_values($first)[0]);
我的评论的完整代码
$link = 'http://www.example/data/showall.php?quantity=&lang=eng&sura=2&ayat=21';
$parse = parse_url($link);
parse_str($parse['query'], $get);
echo $get['sura']; // or var_dump($get);
/* output $get['sura'] = 2
output $get['ayat'] = 21 */