是有辦法分割一個字符串可以說我有這個變量字符串的切片,PHP
$output=Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87
我想切它的方式我想拉中獨立變量經緯度值,subtok沒有達到目的
是有辦法分割一個字符串可以說我有這個變量字符串的切片,PHP
$output=Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87
我想切它的方式我想拉中獨立變量經緯度值,subtok沒有達到目的
你不需要正則表達式;使用explode()
來拆分字符串,首先由&
,然後再由=
,您可以使用它來將其有效地解析爲一個很好的小數組,將名稱映射到值。
我建議你閱讀PHP幫助中的正則表達式。
我不確定你在代碼中展示了什麼,也許它只是一些錯別字,是「$ output」變量的名稱還是字符串的一部分?
假設它是變量的名字,而你只是忘了引號的字符串,你有幾個選擇:
$sliced = explode('&', $output)
這將創建值的數組:「國家=美國(US)」, 「城市=斯科茨,AZ」 等
$sliced = preg_split('/[&=]/', $output);
這將創建具有交替ELEM陣列已廢除作爲 「變量」 和值: 「國家」, 「美國(US)」, 「城市」, 「亞利桑那州斯科茨代爾」 等
你可以做到以下幾點:
$output = 'Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87';
$strs = explode('&', $output);
foreach ($strs as $str) {
list($var, $val) = explode('=',$str);
$$var = trim($val);
}
這會爲您提供諸如$ Latitude和$ Longitude之類的變量,它們被設置爲鍵/值對中的值。
$output='Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87';
parse_str($output, $array);
$latitude = $array['latitude'];
你也可以只做到
parse_str($output);
echo $latitude;
我認爲使用數組是更好,因爲你沒有創建變量所有的地方,這有可能是危險的(像register_globals的),如果你不」不要相信輸入字符串。
它看起來很喜歡它來自一個URL,儘管URL編碼已經消失。
我第二次使用explode()
或preg_split()
的建議,但您可能也有興趣parse_str()
。
$output = "City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87";
parse_str($output, $results);
$lat = $results['Latitude'];
$lon = $results['Longitude'];
所有其他的答案是不夠的。這應該每次都有效!
function slice($string, $start){
$st = $string; $s = $start; $l = strlen($st); $a = func_get_args();
$e = isset($a[2]) ? $a[2] : $l;
$f = $e-$s;
$p = $e < 0 && $s > 0 ? $l+$f : $f;
return substr($st, $s, $p);
}
請問您能舉一個上面的例子嗎?謝謝。 – hitautodestruct 2012-03-26 12:39:33
$ var_array = explode('&',$ var_string); foreach($ var_array as $ var_to_split) – bikemule 2012-04-03 10:11:14