PHP Ayrıştırma

4 Cevap php

i değişkeninin $result bu içerir var

Country: USA City: NY Latitude: 32.2667 Longitude: 71.9167

Nasıl yüzden ben dışarı böyle koyabilirsiniz alabilirsiniz bunu ayrıştırmak:

Country=USA&City=NY&Latitude=32.2667&Longitude=71.9167

4 Cevap

Bir hızlı kesmek

str_replace(array(': ', ' '), array('=', '&'), $string);
str_replace(' ', '&', str_replace(': ', '=', $string));

İstediğiniz gibi çalışabilir.

Bir noktada size veri üzerinde bazı doğrulama yapmak gerekir, eğer (bu sorunu çözmek için en kolay yolu olmasına rağmen) str_replace yöntem sizin için çalışan durabilir. Daha sonra bir akıllı ama daha karmaşık bir şekilde dışarı veri çekmek isterim:

$string = "Country: USA City: NY Latitude: 32.2667 Longitude: 71.9167";
$matches = Array();
$has_match = preg_match('/Country: (\w+) City: (\w+) Latitude: ([0-9.]+) Longitude: ([0-9.]+)/',$string,$matches);
if ($has_match) {
    list($country,$city,$lat,$long) = array_slice($matches,1);
}
else {
    print "no matches";
}

Şimdi size $ ülke, şehir $, $ lat $ ve uzun değerler aklı başında olan ve daha sonra bir sorgu dizeye onlara katılmak emin olmak istiyorum ne yapabilirim:

$query_string = "Country=$country&City=$city&Latitude=$lat&Longitude=$long"

İkinci cevap düzenli expresion Tamam ama bazı küçük düzeltmeler gerekir.

preg_match('/^Country=(\w+)&City=(\w+)&Latitude=([0-9.]+)&Longitude=([0-9.]+)/',$string,$matches);