资讯专栏INFORMATION COLUMN

PHP下处理YAML

banana_pi / 2450人阅读

摘要:用处理,常用的方法有两种扩展扩展需要以上,需要以上。我个人倾向于,因为还需要编译安装,有的时候不方便比如虚拟主机空间什么的,虽然不支持,但官方也不支持了,所以也不算什么不足。扩展安装标准的安装步骤,这里就不罗嗦了。

用PHP处理YAML,常用的方法有两种:

PECL扩展YAML

spyc

PECL扩展需要PHP 5.2以上,SPYC 需要PHP 5.3以上。

我个人倾向于SPYC,因为PECL还需要编译安装,有的时候不方便(比如虚拟主机空间什么的),SPYC 虽然不支持 PHP 5.2,但5.2官方也不支持了,所以也不算什么不足。

1 PECL扩展YAML 安装

标准的PECL安装步骤,这里就不罗嗦了。

代码例子

假设我们有这样一个数组:

$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> "2001-01-23",
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
    );

使用yaml_emit可以将其转化成YAML

$yaml = yaml_emit($invoice);

使用yaml_parse解析YAML:

$parsed = yaml_parse($yaml);
2 使用spyc 安装

可以使用Composer安装,当然也可以直接require_onceinclude.

代码示例

生成YAML:

 "A sequence","second" => "of mapped values");
$array["Mapped"] = array("A sequence","which is mapped");
$array["A Note"] = "What if your text is too long?";
$array["Another Note"] = "If that is the case, the dumper will probably fold your text by using a block.  Kinda like this.";
$array["The trick?"] = "The trick is that we overrode the default indent, 2, to 4 and the default wordwrap, 40, to 60.";
$array["Old Dog"] = "And if you want
 to preserve line breaks, 
go ahead!";
$array["key:withcolon"] = "Should support this to";

$yaml = Spyc::YAMLDump($array,4,60);

解析YAML:



解析更常用,所以还提供了函数,上面的语句等价于:

           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20674.html

相关文章

  • php的扩展 - yaml

    摘要:今天查看扩展库时,看到有个叫的扩展位列榜首,竟有多万下载数,这么牛逼的东西我咋没听说过那既然孤陋寡闻了,那就赶紧学习学习吧。 今天查看php扩展库时(http://pecl.php.net/package-s...),看到有个叫yaml的扩展位列榜首,竟有2000多万下载数,这么牛逼的东西我咋没听说过那?既然孤陋寡闻了,那就赶紧学习学习吧。showImg(https://segment...

    zhangke3016 评论0 收藏0
  • thinkphp源码分析(五)—配置篇

    摘要:对于这两种不同形式的参数,处理方式也不一样,为字符串形式字符串则表示单个配置设置二维数组判断字符串中是否带没有直接把的小写形式作为,作为值设置到配置中如果带,只处理前面两项,即把字符串通过分割成数组,取数组的前面两项,把设置到配置中。 源码分析---入口篇 源码分析 全局配置加载类 全局配置类的主要代码如下: class Config { /** * @var ar...

    HitenDev 评论0 收藏0
  • SimfaseDevEnv一个Vagrant构建的开发环境

    摘要:整体与很像,但是做了一些更改,为了更适应中国国内的开发网络环境。表示宿主机器的目录,表示环境目录。将虚拟机置于休眠状态。在开发过程中可能会需要增加多个站点来运行不同的开发程序。与扩展名重名,建议将的改成为佳。 SimfaseDevEnv 介绍 SimfaseDevEnv是为php开发者提供的开发环境,构建在vagrant之上;Vagrant的Vagrangfile配置文件是在Homes...

    Noodles 评论0 收藏0
  • Symfony4中文文档: 路由

    摘要:路由漂亮的是任何严谨的应用程序所必须的这意味着像这样丑陋的要被所取代具有灵活性更加重要如果你需要将更改为需要做些什么你需要搜索并更新多少链接才能做出这种改动如果你使用的是的路由更改将是很简单的创建路由路由是从到控制器的映射假如你想要一个 路由 漂亮的URL是任何严谨的Web应用程序所必须的. 这意味着像 index.php?article_id=57 这样丑陋的URL要被 /read/...

    everfight 评论0 收藏0
  • OneAPM 云监控部署与试用体验

    摘要:作为骨灰级粉丝,一直以来对第三方监控都是拒绝的。例如白屏时间首屏时间脚本错误网页加载就绪时间各种浏览器的访问情况,甚至能了解不同浏览器运营商地区用户的访问状况。脚本错误在所难免,错误进一步导致网站部分功能无法使用。 作为 Zabbix 骨灰级粉丝,一直以来对第三方监控(APM)都是拒绝的。一来觉得收费,二来担心数据被人所知,三来觉得 Zabbix 牛逼到无可取代。但是,随着 APM 市...

    Tecode 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<