Я вызываю скрипт по адресу: 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...
Как я могу перевести это в свой массив?
Вы можете сделать это, исключив данные (с помощью 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