没有用于缩进深度的选项,因此始终为两个空格。如果需要更多空格,可以使用简单的正则表达式。
从两个空格转换为四个空格
<?php
$yaml = preg_replace('/^( +)/m', '$1$1', $yaml);
?>
在替换中添加两个 $1 以获得八个空格。
(PECL yaml >= 0.5.0)
yaml_emit — 返回值的 YAML 表示
$data
,$encoding
= YAML_ANY_ENCODING,$linebreak
= YAML_ANY_BREAK,$callbacks
= null
生成提供的 data
的 YAML 表示。
data
要编码的 data
。可以是除 资源 之外的任何类型。
encoding
从 YAML_ANY_ENCODING
, YAML_UTF8_ENCODING
, YAML_UTF16LE_ENCODING
, YAML_UTF16BE_ENCODING
中选择的输出字符编码。
linebreak
从 YAML_ANY_BREAK
, YAML_CR_BREAK
, YAML_LN_BREAK
, YAML_CRLN_BREAK
中选择的输出换行符样式。
callbacks
用于发出 YAML 节点的内容处理程序。关联的 数组,其中包含 classname => 可调用 映射。有关详细信息,请参阅 emit 回调。
成功时返回 YAML 编码的 字符串。
版本 | 描述 |
---|---|
PECL yaml 1.1.0 | 添加了 callbacks 参数。 |
示例 #1 yaml_emit() 示例
<?php
$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"=> 980208000,
"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.",
);
var_dump(yaml_emit($invoice));
?>
以上示例将输出类似以下内容
string(628) "--- invoice: 34843 date: 980208000 bill-to: given: Chris family: Dumars address: lines: |- 458 Walkman Dr. Suite #292 city: Royal Oak state: MI postal: 48046 ship-to: given: Chris family: Dumars address: lines: |- 458 Walkman Dr. Suite #292 city: Royal Oak state: MI postal: 48046 product: - sku: BL394D quantity: 4 description: Basketball price: 450 - sku: BL4438H quantity: 1 description: Super Hoop price: 2392 tax: 251.420000 total: 4443.520000 comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338. ... "
没有用于缩进深度的选项,因此始终为两个空格。如果需要更多空格,可以使用简单的正则表达式。
从两个空格转换为四个空格
<?php
$yaml = preg_replace('/^( +)/m', '$1$1', $yaml);
?>
在替换中添加两个 $1 以获得八个空格。
请注意,NULL 值将被转换为波浪号“~”。
这可能有点违反直觉,但这绝对是合法的,而且似乎是每个 Yaml 解析器都认可的标准。所以不用担心。Yaml 参考
http://yaml.org/spec/1.2-old/spec.html#id2805071