当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

Format - 类別

优质
小牛编辑
136浏览
2023-12-01

Format 类别

Format 类别帮助你在各种格式间转换,如 XML、JSON、CSV 等。

配置

Format 类别是透过 fuel/core/config/format.php 配置档案进行配置。它已经填充了一个预设配置群组。你可以藉由複製此配置档案到你的应用程序 config 目录,并根据需求修改该档案,以覆写此配置群组并添加新群组。

以下配置设定可以被定义:

CSV

参数类型预设描述
delimiter字串
','
栏位分隔符
enclosure字串
'"'
包围符
newline字串
'\n'
给 to_csv() 方法使用的换行符
escape字串
'\\'
转义字元

预设情况下,这些配置设定被用来导入及导出 CSV 资料。 在你需要为导入或导出配置不同设定的情况,你可以给它一个阵列键,并把配置移到那里。 预设配置档案已经给你这个设置。

regex_newline字串
'\n'
给正规表达式使用的换行符以转换输入资料
enclose_numbers布林
true
如果为 false,数字不会被包围。如果为 true,数字也会被包围

XML

参数类型预设描述
basenode字串
'xml'
XML 基础节点名称
use_cdata布林
false
是否要在节点中使用 CDATA

JSON

参数类型预设描述
options整数
JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP
json_encode() 选项

请注意,某些组合的结果是不可预知的。例如,如果你有 CSV 资料,没有包围字元、没有标题、并在第一列中嵌入换行符号,档案中的正确栏位数无法被计算。

forge($data = null, $from_type = null, $params = null)

forge 方法回传一个新的 format 物件。$from_type 支援 'xml''yaml''csv''json''serialize''xml:ns'。'xml:ns' 能让你完全解析 namespaced-xml。没指定 $from_type 时,$data 会直接被传递。

静态
参数
参数预设描述
$data
null
要转换的资料。
$from_type
null
所提供的资料格式。
$param
null
要被传递给转换器的选择性参数。
回传Fuel\Core\Format 物件
範例
$array = array('foo' => 'bar');
print_r(Format::forge($array));

// 回传
Fuel\Core\Format Object
(
	[_data:protected] => Array
	(
		[foo] => bar
	)
)
				

当从 CSV 格式转换,你可以传递 false 做为 $param 来指示 CSV 来源不包含任何表头。如果是这样,最终结果会是一个索引阵列。

to_array($data = null)

to_array 方法回传所给的资料为阵列。不要直接呼叫,使用如範例所述的 forge 方法。

静态
参数
参数预设描述
$data
null
要转换的资料。
回传阵列
範例
$json_string = '{"foo":"bar","baz":"qux"}';
print_r(Format::forge($json_string, 'json')->to_array());

// 回传
Array
(
	[foo] => bar
	[baz] => qux
)
				

to_xml($data = null, $structure = null, $basenode = 'xml', $use_cdata = false)

to_xml 方法回传所给的资料为一个 XML 字串。不要直接呼叫,使用如範例所述的 forge 方法。

静态
参数
参数预设描述
$data
null
要转换的资料。
$structure
null
SimpleXMLElement 类别物件。
$basenode"xml"XML 标记的基本节点。
$use_cdatafalse是否要在节点中使用 CDATA
回传字串
範例
$array = array('foo' => 'bar', 'baz' => 'qux');
print_r(Format::forge($array)->to_xml());

// 回传
// <?xml version="1.0" encoding="utf-8"?>
// <xml>
// 	<foo>bar</foo>
// 	<baz>qux</baz>
// </xml>
				

to_csv($data = null, $delimiter = null, $enclose_numbers = null, array $headings = array())

to_csv 方法回传所给的资料为一个 CSV 字串。不要直接呼叫,使用如範例所述的 forge 方法。

静态
参数
参数预设描述
$data
null
要转换的资料。如果没给,forge() 的输入会被使用。
$delimiter
null
CSV 栏位分隔符。如果没给,预设配置会被使用。
$enclose_numbers
null
如果为 false,不会被包围。如果为 true,数字也会被包围。如果没给,预设配置会被使用。
$headings
array()
CSV 栏位名称的阵列。如果没给,栏位名称会根据资料阵列中的第一列来定义。
回传字串
範例
$json_string = '{"foo":"bar","baz":"qux","nr":1}';
print_r(Format::forge($json_string, 'json')->to_csv(null, null, false));

// 回传
// "foo","baz","nr"
// "bar","qux",1

$json_string = '{"foo":"bar","baz":"qux","nr":1}';
print_r(Format::forge($json_string, 'json')->to_csv(null, null, false, array('this', 'that', 'num')));

// 回传
// "this","that","num"
// "bar","qux",1
				

to_json()

to_json 方法回传所给的资料为一个 JSON 字串。不要直接呼叫,使用如範例所述的 forge 方法。

静态
回传字串
範例
$array = array('foo' => 'bar', 'baz' => 'qux');
print_r(Format::forge($array)->to_json());

// 回传
// {"foo":"bar","baz":"qux"}
				

to_serialized()

to_serialized 方法回传所给的资料为一个序列化字串。不要直接呼叫,使用如範例所述的 forge 方法。

静态
回传字串
範例
$array = array('foo' => 'bar', 'baz' => 'qux');
print_r(Format::forge($array)->to_serialized());

// 回传
// a:2:{s:3:"foo";s:3:"bar";s:3:"baz";s:3:"qux";}
				

to_php()

to_php 方法回传所给的资料为 PHP 表达字串中的资料。你可以传进 eval() 或用做其他疯狂的事情。

静态
回传字串
範例
$array = array(1, 2, array('a', 'b', 'c'));
print_r(Format::forge($array)->to_php());

// 回传
Array
(
	0 => 1,
	1 => 2,
	2 => array(
		0 => 'a',
		1 => 'b',
		2 => 'c',
	),
)