给你量身写了个函数,应该能满足你的需求
function strint($str){
if($str){
preg_match("/\d+/is",$str,$v);
}
$StrInt = @$v[0];
if($StrInt){
return $StrInt;
}else{
return $str;
}
}
$string = 'abcdef';
echo $string[0]; // a
分享两个非常好用的正则提取字符串中数字的方法
1、提取首次出现的连续的数字方法:$str='http://www.5ixuexiwang.com/phprumenjiaocheng/2017/0322/2175.html';
if (preg_match('|(\d+)|',$str,$r)) echo $r[1];
2、提取字符串中所有数字
echo preg_replace('/\D/s', '', $str);
3、提取字符串中所有数字放入数组
$ex1 = "/\d+/";
preg_match_all($ex1,$str,$arr1);
print_r($arr1);
//执行结果:Array ( [0] => Array ( [0] => 5 [1] => 2017 [2] => 0322 [3] => 2175 ) )
$ex2 = "/\d/";
preg_match_all($ex2,$str,$arr2);
print_r($arr2);
//执行结果:Array ( [0] => Array ( [0] => 5 [1] => 2 [2] => 0 [3] => 1 [4] => 7 [5] => 0 [6] => 3 [7] => 2 [8] => 2 [9] => 2 [10] => 1 [11] => 7 [12] => 5 ) )
正则表达式就好啦
$a='你19啊你15啊你16啊';
$b=preg_match_all('/\d+/',$a,$arr);
print_r($arr);
$arr中放置的就是取到的数字,只取一个的话 可以把preg_match_all换成preg_match