我有一个xml格式的大日志文件,需要以数组的形式存储在单个数据库字段中。我通过
获得该文件$ request-> getContent()
无论我写什么语法,我仍然会得到xml格式。
这是我的代码。
public function test(Request $request)
{
file_put_contents('/var/www/html/var/logs/ehi.log', print_r($request->getContent() . '',true), FILE_APPEND);
$array = json_decode(json_encode((array)($request->getContent())),true);
dump($array);die;
}
内容看起来像..
答案 0 :(得分:1)
来自converting SOAP XML response to a PHP object or array和How do I convert an object to an array?的灵感
首先,您需要从SOAP响应中获取所需的对象。为此,您可以使用simplexml_load_string
将其转换为simplexml对象然后,您可以通过沿着子树或使用xpath来“导航” simplexml对象。无论您喜欢什么。
有了对象后,您可以使用第二个问题(get_object_vars)中列出的函数将其转换为数组。
$soap = simplexml_load_string($request->getContent());
$transaction = $soap->children('http://schemas.xmlsoap.org/soap/envelope/')
->Body->children()
->GetTransaction;
$transaction_as_array = get_object_vars($transaction);