classmarkets/javaproperties.php

此包已被废弃且不再维护。未建议替代包。

用于在PHP中加载Java属性文件的类

dev-master 2012-11-07 13:26 UTC

This package is auto-updated.

Last update: 2020-02-26 12:17:53 UTC


README

Build Status

在PHP中解析Java属性文件。

此类允许您在PHP中解析Java属性文件或字符串。它应完全符合[Java.util.Properties的解析规则](http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader)).

接口

<?php
class Classmarkets\JavaProperties implements \ArrayAccess
{
    void loadResource($url, $streamContext = null);
    void loadString($string);
    array getAll();
}

概述

<?php
$properties = new Classmarkets\JavaProperties;
    
$properties->loadString("foo: bar");
// OR: $properties->loadResource("http://mysite/legacy/app.properties");
    
var_export($properties->getAll());
var_export($properties['foo']);

yields

array (
  'foo' => 'bar',
)

loadResource接受任何有支持的协议包装器的URL,包括当然是你自己注册的流包装器。它接受一个可选的第二个参数流上下文

需求

  • PHP必须编译--with-pcre-regex
  • 网络流需要allow_url_fopen = on。这由fopen隐含。有关详细信息,请参阅文档

使用Composer安装

以下是composer.json中必需的条目

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/classmarkets/JavaProperties.php"
        }
    ],
    "require": {
        "classmarkets/javaproperties.php": "*"
    }
}

添加它们后,只需运行composer.phar update。目前我们没有任何计划在packagist上发布此包,对此我们深感抱歉。

已知限制

  • 不支持转义键值分隔符,例如foo\:bar = baz将不会生成[ 'foo:bar' => 'baz' ],而是[ 'foo\' => 'bar = baz' ]
  • 以多个反斜杠结尾的行处理不正确。它们被视为以一个反斜杠结尾。

欢迎补丁 :)