Как десериализовать эту строку в массив PHP пар ключ => значение?

Я вызываю скрипт по адресу: http://phat-reaction.com/googlefonts.php?format=php

И мне нужно преобразовать результаты в формат массива PHP, такой как тот, который я сейчас жестко кодирую:

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

Возвращаемый php сериализуется:

 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... 

Как я могу перевести это в свой массив?

Solutions Collecting From Web of "Как десериализовать эту строку в массив PHP пар ключ => значение?"

Вы можете сделать это, исключив данные (с помощью unserialize() ), а затем итерации через него:

 $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']; } 

В зависимости от того, для чего вы используете это, может быть хорошей идеей кэшировать результаты, чтобы вы не извлекали внешние данные каждый раз, когда запускается скрипт.

Использовать unserialize() : http://www.php.net/unserialize