php - 如何将此字符串反序列化为键=>值对的PHP数组?

标签 php arrays

我正在调用脚本: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'];
}

根据您的用途,缓存结果可能是个好主意,这样您就不会在每次脚本运行时都获取外部数据。

关于php - 如何将此字符串反序列化为键=>值对的PHP数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547009/

相关文章:

php - 我找不到包含 PHP MySQL native 驱动程序 (mysqlnd) 的 CentOS 6.6 存储库

使用 nl2br 进行 PHP JSON 编码

c++ - 关于C++中数组模板的问题

java - 使用扫描仪从数组中删除所有零

php - 使用不同数据类型的数组内爆进行数组mysql插入

php - 触发 SQL 查询或在 php 中处理结果哪个更好?

php - 为什么当我遍历这个数组两次时 PHP 会覆盖值(通过引用,通过值)

java - 当前目录 java 中的文件和文件夹数组和有效字符串

直接来自教科书的c段错误

android - 我无法在 android 的 ListView 中显示数组列表