2012-09-25 26 views
0

我有一個字符串變量,它看起來是這樣的選擇只有一個字:fasdhkfsdk, 1 sdfs從字符串

前面和後面的字符字符串中的量的大小將各色,但在逗號和二進制值將始終在那裏(值將從1變爲0)。

我需要一種方法來關閉二進制值的左右兩側的所有東西,只留下1或0.兩邊的字符數量確實發生了變化,所以我不認爲我可以使用substr或explode ,但我可能是錯的

非常感謝

ps是的,總是會有一逗號和二進制數字之前的空間

+0

是始終存在的二元前一個逗號? – rationalboss

+0

會是字符串中唯一的逗號嗎? –

+0

將是唯一的數字字符,它周圍是否會有空格? – Vaughan

回答

0

你可以使用正則表達式是這樣的:

$string = "fasdhkfsdk, 1 sdfs"; 
echo preg_replace("[^01]", "", $string); 

,將刪除一切,但0和1,如果你確定字串將只能從字母字符

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 substrstrrpos

//credit: slugonamission 

$string = "fasdhkfsdk, 1 sdfs" ; 
echo trim(substr($string , strrpos($string,",") + 1 ,2)); 


輸出

1 
0

你應該給regular expressions一試。

+1

正則表達式完全是這個過度。你知道逗號會在那裏,所以在逗號上運行'strrpos'並使用'substring'。 – slugonamission

+0

@slugonamission,但我們不知道這是否將是唯一的逗號! –

+0

我通常假設在這種情況下它會:P。 – slugonamission

0

試試這個:爆炸字符串,如 $r = explode(",",$string)

然後只需訪問數組$ r的第二部分並獲取第二個字符。

echo $r[1][1]; 

或類似的東西。

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