2011-12-17 5 views
5

Dzwonię skrypt na stronie: http://phat-reaction.com/googlefonts.php?format=phpJak odserializować ten ciąg znaków do tablicy PHP z par kluczy => wartość?

I muszę konwertować wyniki w formacie tablicy PHP jak ten obecnie jestem ciężko kodowania:

$googleFonts = array(
    "" => "None", 
    "Abel"=>"Abel", 
    "Abril+Fatface"=>"Abril Fatface", 
    "Aclonica"=>"Aclonica", 
    etc... 
    ); 

php zwrócony jest w odcinkach:

a:320:{ 
    i:0; 
    a:3:{ 
     s:11:"font-family"; 
     s:32:"font-family: 'Abel', sans-serif;"; 
     s:9:"font-name"; 
     s:4:"Abel"; 
     s:8:"css-name"; 
     s:4:"Abel"; 
     } 
    i:1; 
    a:3:{ 
     s:11:"font-family"; 
     s:38:"font-family: 'Abril Fatface', cursive;"; 
     s:9:"font-name"; 
     s:13:"Abril Fatface"; 
     s:8:"css-name"; 
     s:13:"Abril+Fatface"; 
     } 

     etc... 

Jak mogę to przetłumaczyć na moją tablicę?

+2

To po prostu format serializacji PHP. Użyj ['unserialize()'] (http://php.net/unserialize), aby go wyłączyć. – mario

Odpowiedz

8

Można to zrobić przez unserializing danych (za pomocą unserialize()), a następnie iteracja go:

$fonts = array(); 

$contents = file_get_contents('http://phat-reaction.com/googlefonts.php?format=php'); 
$arr = unserialize($contents); 

foreach($arr as $font) 
{ 
    $fonts[$font['css-name']] = $font['font-name']; 
} 

W zależności od tego, co używasz do tego, może być dobrym pomysłem jest buforowanie wyników, aby nie pobierać danych zewnętrznych przy każdym uruchomieniu skryptu.

+0

+1 dzięki za pomoc! Zadawanie osobnego pytania o buforowanie wyników. – RegEdit

+0

Oto moje pokrewne pytanie, jeśli chcesz je sprawdzić> http://stackoverflow.com/questions/8547253/how-to-cache-a-server-call-and-test-for-cache-expiration-prior- nazywać za nie – RegEdit

Powiązane problemy