如何选择链接中的第一个数字


how to select the first number in a link

我有一个链接,类似于以下内容:

$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 */