我有一个字符串变量,如下所示:fasdhkfsdk, 1 sdfs
字符串中的前后字符数量大小不同,但逗号和二进制值将始终存在(值将从1更改为0)。
我需要一种方法来关闭二进制值左右两侧的所有内容,只留下1或0.双方的字符数确实发生变化,所以我不认为我可以使用substr或explode,但我可能是错的
非常感谢
P.S。是的,在二进制数字
之前总会有一个逗号和一个空格答案 0 :(得分:6)
示例1 sscanf
$string = "fasdhkfsdk, 1 sdfs" ;
$part = sscanf($string, "%s %d %s");
echo $part[1];
sscanf
$string = "fasdhkfsdk, 1 sdfs" ;
$part = sscanf($string, "%s %d %s",$prifix,$number,$sufix);
print($number);
示例2 preg_match_all
$string = "fasdhkfsdk, 1 sdfs" ;
preg_match_all('!\d+!', $string, $matches);
print($matches[0][0]);
示例3 filter_var
$string = "fasdhkfsdk, 1 sdfs" ;
$int = filter_var($string, FILTER_SANITIZE_NUMBER_INT);
print($int);
实例4 substr
strrpos
//credit: slugonamission
$string = "fasdhkfsdk, 1 sdfs" ;
echo trim(substr($string , strrpos($string,",") + 1 ,2));
输出
1
答案 1 :(得分:0)
您应该尝试regular expressions。
答案 2 :(得分:0)
你可以像这样使用正则表达式:
$string = "fasdhkfsdk, 1 sdfs";
echo preg_replace("[^01]", "", $string);
如果你确定字符串只是字母表中的字符,将除去0和1之外的所有内容
答案 3 :(得分:0)
试试这个:首先爆炸字符串,就像
$r = explode(",",$string)
然后只需访问数组$ r的第二部分并获取第二个字符。
echo $r[1][1];
或类似的东西。
答案 4 :(得分:0)
你只想要二进制值吗?你想知道它是1还是0。 试试
$ar = explode(",", "fasdhkfsdk, 1 sdfs"); // split on the comma
echo(intval($ar[1])); // convert everything after the comma to an int. should be 0 or 1