0
我正在创建一个RESTful webservice,现在我正面临新资源的插入(Season
资源)。这是POST请求的身体:将XML字符串解析为PHP数组?
<request>
<Season>
<title>new title</title>
</Season>
</request>
,这是有效执行插入控制器:
public function add() {
// i feel shame for this line
$request = json_decode(json_encode((array) simplexml_load_string($this->request->input())), 1);
if (!empty($request)) {
$obj = compact("request");
if ($this->Season->save($obj['request'])) {
$output['status'] = Configure::read('WS_SUCCESS');
$output['message'] = 'OK';
} else {
$output['status'] = Configure::read('WS_GENERIC_ERROR');
$output['message'] = 'KO';
}
$this->set('output', $output);
}
$this->render('generic_response');
}
代码工作得很好,但正如我在片段中写道上面我考虑控制器的第一行真的很丑,所以,问题是:我如何将XML字符串解析为PHP数组?
'xml_parse_into_struct()' – clover
为什么你有'紧凑型( “请求”)''然后$ OBJ [ '请求']'? – nickb