从字符串中只选择一个字符

时间:2012-09-25 16:36:32

标签: php string trim

我有一个字符串变量,如下所示:fasdhkfsdk, 1 sdfs

字符串中的前后字符数量大小不同,但逗号和二进制值将始终存在(值将从1更改为0)。

我需要一种方法来关闭二进制值左右两侧的所有内容,只留下1或0.双方的字符数确实发生变化,所以我不认为我可以使用substr或explode,但我可能是错的

非常感谢

P.S。是的,在二进制数字

之前总会有一个逗号和一个空格

5 个答案:

答案 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