質問
の文字列をスライスする方法は、私は、この変数を持っていると言うができますです。
$output=Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87
私は別々の変数に緯度と経度の値をプルする方法でそれをスライスする、subtokの目的を果たすされていない
解決
あなたは、このための正規表現を必要としません。あなたが効果的な値に素敵な小さな配列マッピング名にそれを解析するために使用できる、explode()
によって最初&
によって、文字列を分割する=
を使用し、かつます。
他のヒント
$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()
に使用しての I秒提案や<のhref = "のhttp:// WWW。 php.net/preg_split」のrel = "nofollowをnoreferrer"> preg_split()
にいますが、 parse_str()
に興味があるかもしれませんのます。
$output = "City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87";
parse_str($output, $results);
$lat = $results['Latitude'];
$lon = $results['Longitude'];
私はあなたのコードに実証している正確にわからないんだけど、多分それはちょうどいくつかのタイプミスだ、「$出力」変数の名前、または文字列の一部ですか?
これは変数の名前だと仮定すると、あなたは単なる文字列に引用符を置くのを忘れて、あなたはカップルのオプションがあります:
<時間>$sliced = explode('&', $output)
これは、値を持つ配列が作成されます: "国=米国(US)"、 "市=スコッツデール、AZ" など
<時間>$sliced = preg_split('/[&=]/', $output);
これは、「変数」とその値である要素を交互に配列を作成します:「国」、「UNITED STATES(US)」、「市」、「スコッツデール、AZ」など
あなたは次のことを行うことができます:
$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);
}
このは、あなたのようなキー/値ペアの値に設定されている$緯度と経度$などの変数を与えるだろう。
他の回答のすべてが不足しています。これは、すべての時間を動作するはずです!
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);
}
私はあなたがPHPのヘルプの正規表現について読むことをお勧めます。