2013-10-03 77 views
0

我已經嘗試使用爆炸,但無法得到我想要的。 返回一個字符串數組,每個字符串都是通過將字符串分割成由字符串分隔符組成的邊界形成的字符串的子字符串。抓住使用PHP的字符串的一部分

$var = "ptitl=thiismytitile&bcolor=green&pwspecif=grabthis&auth=1&[email protected]&pass=secretepass"; 

$array = explode('&', $var); 

返回像「pwspecif = grabthis」但我只想字符串「grabthis」

我想抓住從上面的字符串這部分「grabthis」 ..有人把一些光這一點。

謝謝

問候, 蒙娜麗莎

+2

您已經使用'explode'將字符串分解成其部分;爲什麼你不能在子字符串上再次使用它將它們分成鍵和值對? – andrewsi

+0

'$ value = explode('=',$ array [indexhere]); $ value = $ value [1]' –

+0

嗨安德魯斯..謝謝..有什麼方法可以直接抓住那個... – SmartDev

回答

8

您的變量看起來像一個查詢字符串。您可以簡單地使用parse_str()函數來解析字符串,就好像它是通過URL傳遞的查詢字符串一樣。

parse_str($var); 
echo $pwspecif; 

如果你想確保它不會覆蓋在當前範圍內設置任何變量,你可以使用第二個參數(感謝Glavic),像這樣:

parse_str($var, $arr); 
echo $arr['pwspecif']; 

輸出:

grabthis 

Demo!

+0

不知道這個,很好! –

+1

我建議你在'parse_str'函數中使用第二個參數,所以你不要在當前作用域中設置/覆蓋變量。這讓我想起register_globals,有點邪惡;) –

+0

@Glavić我的問題是爲什麼它不返回一個數組默認情況下填充值。如果使用不當,這聽起來像是一種危險/煩人的功能。 – ajp15243

1

您需要在再次發生爆炸的字符串,就像你與&

$value = explode('=',$array[indexhere]); 
$value=$value[1] 

哪裏indexhere是其pwspecif=grabthis$array

0

如果你確信「pwspecif」是第三個參數總是那麼使用下面的代碼索引一樣。

$var = "ptitl=thiismytitile&bcolor=green&pwspecif=grabthis&auth=1&[email protected]&pass=secretepass"; 

$array = explode('=', $var); 
$arr2=$array[3]; 
$arr3=explode('&', $arr2); 
echo $arr3[0]; 
1
$var = "ptitl=thiismytitile&bcolor=green&pwspecif=grabthis&auth=1&[email protected]&pass=secretepass"; 
    $chars = preg_split('/&/', $var, -1, PREG_SPLIT_OFFSET_CAPTURE); 
    $chars1=$chars[2][0]; 
    $arr3=explode('=', $chars1); 
    echo $arr3[0]; 

如果你確信「pwspecif」是第三個參數總是那麼使用上面的代碼。