dize dilimleme, php

7 Cevap php

bir dize ben bu değişkeni var demek dilim bir yol var sağlar

$output=Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87

i ayrı değişkenlere enlem ve boylam değerlerini çekmek istiyorum bir şekilde bunu dilim istiyorum, subtok amaca hizmet değil

7 Cevap

Bunun için normal bir ifade gerekmez; explode() etkili güzel bir dizi haritalama isimleri ayrıştırmak için kullanabileceğiniz, = daha sonra da ilk & ile, dize bölmek ve kullanmak değerlerine.

$output='Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87';
parse_str($output, $array);
$latitude = $array['latitude'];

Ayrıca, sadece yapabilirdi

parse_str($output);
echo $latitude;

Ben size giriş dizesi güvenmiyorsanız potansiyel (register_globals gibi) tehlikeli olabilir, her yerde değişkenleri yaratmak değildir gibi bir dizi kullanarak daha iyi olduğunu düşünüyorum.

Ben belki de "$ çıktı" değişken veya dize bölümünün adı, sadece bazı yazım hataları mi, kodunuzu gösteren tam olarak ne olduğundan emin değilim?

Bu değişkenin adı, ve sadece dize tırnak koymak unuttum varsayarsak, bir kaç seçeneğiniz var:


$sliced = explode('&', $output)

Vb "Ülke = AMERİKA BİRLEŞİK DEVLETLERİ (ABD)", "Şehir = Scottsdale, AZ",: Bu değerlere sahip bir dizi yaratacak


$sliced = preg_split('/[&=]/', $output);

"Ülke", "Amerika Birleşik Devletleri (ABD)", "Şehir", "Scottsdale, AZ", vb: Bu "değişkenler" ve değerleri olan alternatif unsurları ile bir dizi yaratacak

Sen aşağıdakileri yapabilirsiniz:

$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);

}

Bu size anahtar / değer çifti değere ayarlandığı gibi $ Latitude ve Boylam $ gibi değişkenleri verecek.

Diğer Cevapları Tüm yetersiz bulunmaktadır. Bu her zaman işe Gerekenler!

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);
}

Ben PHP yardımıyla düzenli ifadeler hakkında okumanızı öneririz.