value | 转 | Value |
---|---|---|
Object | 转 | array |
xml | 转 | Object |
array | 转 | xml |
array | 转 | Object |
json_encode | 区别 | json_decode |
- Object转array
/*
Object转array
*/
function objectToArray($array)
{
if (is_object($array)) {
$array = (array) $array;
}if (is_array($array)) {
foreach ($array as $key => $value) {
$array[$key] = objectToArray($value);
}
}
return $array;
}
- 解析xml文档,转化为对象
/**
* 解析xml文档,转化为对象
* @param String $xmlStr xml文档
* @return Object 返回Obj对象
*/
function xmlToObject($xmlStr)
{
if (!is_string($xmlStr) || empty($xmlStr)) {
return false;
}
// 由于解析xml的时候,即使被解析的变量为空,依然不会报错,会返回一个空的对象,所以,我们这里做了处理,当被解析的变量不是字符串,或者该变量为空,直接返回false
libxml_disable_entity_loader(true);
$postObj = json_decode(json_encode(simplexml_load_string($xmlStr, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
//将xml数据转换成对象返回
return $postObj;
}
- 数组转xml字符
/**
* 数组转xml字符
* @param string $xml xml字符串
**/
function arrayToXml($data)
{
if (!is_array($data) || count($data) <= 0) {
return false;
}
$xml = "<xml>";
foreach ($data as $key => $val) {
if (is_numeric($val)) {
$xml .= "<" . $key . ">" . $val . "</" . $key . ">";
} else {
$xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">";
}
}
$xml .= "</xml>";
return $xml;
}
- 数组转对象
/*
* 数组转对象
* json_encode()
* 示例:
* $arr_1 = ['one', 'two', 'three'];
var_dump(json_encode($arr_1));
*/
json_encode()
- json_encode 区别 json_decode
json_encode(); 输出一个json数据
json_decode($data,true);输出的一个关联数组,json_encode()和json_decode()是编译和反编译过程,注意json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。