Php 在mysql字段中操作文件列表数组中的数据

Php 在mysql字段中操作文件列表数组中的数据,php,mysql,Php,Mysql,我有一个mysql数据库,其中包含有声书籍的详细信息和书籍的文件位置。文件位置可以是多文件上载。这是可行的,并且完全符合预期 我遇到的问题是,现在用户希望将数据库的内容导出为XML,以便在另一个应用程序中使用。这就是问题所在 数据库示例: FieldName: BookTitle<br /> Content: War of the Worlds<br /> FieldName: Author<br /> Content: H G Wells<br /&g

我有一个mysql数据库,其中包含有声书籍的详细信息和书籍的文件位置。文件位置可以是多文件上载。这是可行的,并且完全符合预期

我遇到的问题是,现在用户希望将数据库的内容导出为XML,以便在另一个应用程序中使用。这就是问题所在

数据库示例:

FieldName: BookTitle<br />
Content: War of the Worlds<br />
FieldName: Author<br />
Content: H G Wells<br />
FieldName: FileLocation<br />
Content:[{"name":"files\/warofworlds_b2_ch04_wells_64kb_wqd92auj.mp3","usrName":"warofworlds_b2_ch04_wells_64kb.mp3","size":5270144,"type":"audio\/mp3","searchStr":"warofworlds_b2_ch04_wells_64kb.mp3,!warofworlds_b2_ch06_wells_64kb.mp3,!warofworlds_b2_ch05_wells_64kb.mp3,!warofworlds_b2_ch10_wells_64kb.mp3,!warofworlds_b2_ch09_wells_64kb.mp3,!warofworlds_b2_ch08_wells_64kb.mp3,!warofworlds_b1_ch01_wells_64kb.mp3,!warofworlds_b1_ch02_wells_64kb.mp3,!warofworlds_b1_ch03_wells_64kb.mp3,!warofworlds_b1_ch04_wells_64kb.mp3,!warofworlds_b1_ch06_wells_64kb.mp3,!warofworlds_b1_ch05_wells_64kb.mp3,!warofworlds_b1_ch08_wells_64kb.mp3,!warofworlds_b1_ch10_wells_64kb.mp3,!warofworlds_b1_ch07_wells_64kb.mp3,!warofworlds_b1_ch09_wells_64kb.mp3,!warofworlds_b2_ch07_wells_64kb.mp3,!warofworlds_b1_ch11_wells_64kb.mp3,!warofworlds_b1_ch13_wells_64kb.mp3,!warofworlds_b1_ch14_wells_64kb.mp3,!warofworlds_b1_ch12_wells_64kb.mp3,!warofworlds_b1_ch16_wells_64kb.mp3,!warofworlds_b1_ch15_wells_64kb.mp3,!warofworlds_b1_ch17_wells_64kb.mp3,!warofworlds_b2_ch01_wells_64kb.mp3,!warofworlds_b2_ch03_wells_64kb.mp3,!warofworlds_b2_ch02_wells_64kb.mp3,!:sStrEnd"},{"name":"files\/warofworlds_b2_ch06_wells_64kb_m7j4eow4.mp3","usrName":"warofworlds_b2_ch06_wells_64kb.mp3","size":4134464,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch05_wells_64kb_dqkhae74.mp3","usrName":"warofworlds_b2_ch05_wells_64kb.mp3","size":3274304,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch10_wells_64kb_39ois1bc.mp3","usrName":"warofworlds_b2_ch10_wells_64kb.mp3","size":4315904,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch09_wells_64kb_fjgjexg9.mp3","usrName":"warofworlds_b2_ch09_wells_64kb.mp3","size":5699840,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch08_wells_64kb_v5hckthv.mp3","usrName":"warofworlds_b2_ch08_wells_64kb.mp3","size":9816704,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch01_wells_64kb_h0nml30w.mp3","usrName":"warofworlds_b1_ch01_wells_64kb.mp3","size":7520384,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch02_wells_64kb_woll8288.mp3","usrName":"warofworlds_b1_ch02_wells_64kb.mp3","size":4536704,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch03_wells_64kb_vbzl27ng.mp3","usrName":"warofworlds_b1_ch03_wells_64kb.mp3","size":3336320,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch04_wells_64kb_fdybmn8a.mp3","usrName":"warofworlds_b1_ch04_wells_64kb.mp3","size":3833600,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch06_wells_64kb_iavsdbqx.mp3","usrName":"warofworlds_b1_ch06_wells_64kb.mp3","size":2855936,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch05_wells_64kb_l82lslue.mp3","usrName":"warofworlds_b1_ch05_wells_64kb.mp3","size":4925504,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch08_wells_64kb_82spzg6p.mp3","usrName":"warofworlds_b1_ch08_wells_64kb.mp3","size":3312128,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch10_wells_64kb_bgv3f8n0.mp3","usrName":"warofworlds_b1_ch10_wells_64kb.mp3","size":6806528,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch07_wells_64kb_n1offnbh.mp3","usrName":"warofworlds_b1_ch07_wells_64kb.mp3","size":4267136,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch09_wells_64kb_eohkknbi.mp3","usrName":"warofworlds_b1_ch09_wells_64kb.mp3","size":6283328,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch07_wells_64kb_1y6ndhqm.mp3","usrName":"warofworlds_b2_ch07_wells_64kb.mp3","size":16417280,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch11_wells_64kb_dautbgxj.mp3","usrName":"warofworlds_b1_ch11_wells_64kb.mp3","size":6151040,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch13_wells_64kb_aledo534.mp3","usrName":"warofworlds_b1_ch13_wells_64kb.mp3","size":6020288,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch14_wells_64kb_cd212pib.mp3","usrName":"warofworlds_b1_ch14_wells_64kb.mp3","size":11562368,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch12_wells_64kb_eibzjw6p.mp3","usrName":"warofworlds_b1_ch12_wells_64kb.mp3","size":11322752,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch16_wells_64kb_g51vzwxq.mp3","usrName":"warofworlds_b1_ch16_wells_64kb.mp3","size":13554752,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch15_wells_64kb_djp9o4ju.mp3","usrName":"warofworlds_b1_ch15_wells_64kb.mp3","size":9244928,"type":"audio\/mp3"},{"name":"files\/warofworlds_b1_ch17_wells_64kb_4otwu4rd.mp3","usrName":"warofworlds_b1_ch17_wells_64kb.mp3","size":10668800,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch01_wells_64kb_4pebkj4j.mp3","usrName":"warofworlds_b2_ch01_wells_64kb.mp3","size":8106944,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch03_wells_64kb_0lqsspkr.mp3","usrName":"warofworlds_b2_ch03_wells_64kb.mp3","size":6123392,"type":"audio\/mp3"},{"name":"files\/warofworlds_b2_ch02_wells_64kb_a84ehsss.mp3","usrName":"warofworlds_b2_ch02_wells_64kb.mp3","size":10636736,"type":"audio\/mp3"}]
$files = json_decode($row['FileLocation'],true);
$values = array('BookTitle' => $row['BookTitle'],
                'Author' => $row['Author'],
                'FileLocation' => $files
)

$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($values, array ($xml, 'addChild'));
print $xml->asXML();
FieldName:BookTitle
内容:世界大战
字段名:作者
内容:H G Wells
字段名:文件位置
内容:[{“名称”:“文件\/warofworlds\u b2\u ch04\u wells\u 64kb\u wqd92auj.mp3”,“usrName”:“warofworlds\u b2\u ch04\u wells\u 64kb.mp3”,“大小”:5270144,“类型”:“音频\/mp3”,“searchStr”:"3.mp3,!世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的b2你们们的世界之战的北京北京大学大学的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战8个8个8个世界之战的世界之战的世界之战的世界之战的世界之战的世界之_64kb.mp3,!世界之战_3.mp3,!世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的人类人类人类人类的地球1 1 1中国中国的世界之战的世界之战的世界之战的世界之战的人类人类人类人类人类的地球1 1 1你们们的世界之战的世界之战的世界之战的地球1你们们1你们们的人类世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的人类人类人类人类人类人类的05的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界之战的世界1你们们的u ch13_wells_64kb.mp3,!warofworlds_b1_3.mp3,!世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战人类人类之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战我们12个世界之战世界之战世界之战世界之战中国之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战中国之战中国之战中国之战中国之战中国之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战世界之战中国之战1 ch06_wells_64kb_m7j4eow4.mp3“usrName:“warofworlds_b2_ch06_wells_64kb.mp3”,“大小”:4134464,“类型”:“音频\/mp3”,{“名称”:“文件\/warofworlds_b2_ch05_wells_64kb_dqkhae74.mp3”,“usrName:“warofworlds_b2_ch05_wells_64kb.mp3”,“大小”:3274304,“类型”:“音频\/mp3”,{“名称”:“文件\/warofworlds_ch10_ch10_wells”;“USRNAM3”;“大小”:“WAROWFERLDS”键入“:”audio\/mp3“},{”name“:”files\/warofworld_b2_ch09_wells_64kb_fjgjexg9.mp3“,”usrName“:”warofworld_b2_ch09_wells_64kb.mp3“,”size“:”5699840,“type“:”audio\/mp3“,”name“:”files\/warofworld_b2_ch08_wells_vkthv.mp3“,”usrName“:”warofworld_ch08_ch08_wells_ch08_vkthk4.mp3“,”usrName“:”audio“,”mp3“,”name“:”mp3“,”mp3“3.mp3,“usrName”包括以下几个方面:“世界沃沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界“:“warofworlds\u b1\u ch03\u wells\u 64kb.mp3”,“大小”:3336320,“类型”:audio\/mp3},{”name:“files\/warofworlds\u b1\u ch04\u wells\u 64kb\u fdybmn8a.mp3”,“usrName:“warofworlds\u ch04\u wells\u 64kb.mp3”,“大小”:3833600,“type”:“audio\/mp3”},{”name:“files\/warofworlds\u ch06\u wells\u 64kb”“usdbx”,“mp3”大小:“:“warofworlds\u64kb”;“mp3”;“mp3”;“mp3”;“类型”:“audio\/mp3”{“name”:“files\/warofworlds\u b1\u ch05\u wells\u 64kb\u l82lslue.mp3”、“usrName”:“warofworlds\u b1\u ch05\u wells\u 64kb.mp3”、“size”:4925504,“type”:“audio\/mp3”{“name”:“files\/warofworlds\u b1\u ch08\u wells\u 64kb\u spzg6p.mp3”、“usrName”:“warofworlds\u ch08\u ch08\u wells\u 64kb.mp3”、“usrName”;“type”:“audio3.mp3,“usrName”包括以下几个方面的“::“世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界水井水井水井水井水井水井水井水井水井水井水井水井水井水井水井水井“大小”:6283328,“类型:,”类型:::“类型,”类型::“音频\/mp3,,,{“名称”名称:“文件名”名称:文件名:文件名:文件名:文件名:世界战争世界世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争世界战争地球地球人类人类人类人类兄弟兄弟兄弟兄弟兄弟们们共共共共共有7个战争世界战争战争战争战争战争战争战争世界世界世界战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争战争双方双方双方双方双方双方双方双方双方兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟兄弟"“音频\/mp3”},{“名称”:“文件\/warofworlds_b1_ch13_wells_64kb_aledo534.mp3”,“usrName”:“warofworlds_b1_ch13_wells_64kb.mp3”,“大小”:6020288,“类型”:“音频\/mp3”},{“名称”:“文件\/warofworlds_b1_ch14_wells_64kb cd212pib.mp3”,“usrName”:“warofworlds_b1_ch13_wells_64kb_wells_64kb.mp3”,“usrName”:“类型”:“音频\/mp3”},{3.mp3,“usrName”包括以下几个方面:“世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界沃世界布1中国16中国卫生16中国水井16中国水井水井的64kb的G51vwzwwwwwwwwwwxxxxqqqqq.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3.mp3,“usrName”,“usrName”,“usrName”,“美国名称”,“usrName”,“美国名称”,“usrName”包括包括包括包括包括包括以下以下以下以下以下以下以下以下以下“““““:::ju.mp3“usrName:“warofworlds\u b1\u ch15\u wells\u 64kb.mp3”,“大小”:9244928,“类型”:“音频\/mp3”{“名称”:“文件\/warofworlds\u b1\u ch17\u wells\u 64kb\u otwu4rd.mp3”,“usrName:“warofworlds\u b1\u ch17\u wells\u 64kb.mp3”,“大小”:10668800,“类型”:“音频\/mp3”{“名称”:“文件\/warofworlds\u b2\u ch01\u wells\u64kb”“USRNAM3大小”:“:8106944,“键入”:“audio\/mp3”},{“name”:“files\/warofworlds\u b2\u ch03\u wells\u 64kb\u 0qsspkr.mp3”,“usrName”:“warofworlds\u b2\u ch03\u wells\u 64kb.mp3”,“size”:6123392,“type”:“audio\/mp3”},{“name”:“files\/warofworlds\u b2\u ch02\u wells\u 64kb\u a84ehsss.mp3”,“usrName”:“warofworlds\u b2\u ch02\u chu wells\u 64kb”“mp3”;“size”;“audio
在我的系统中查看条目没有问题,文件显示正确,如预期的那样。当我尝试用XML下载内容时,结果非常奇怪

理想情况下,我希望XML输出应该是书名、作者,然后是文件列表,而不包括所有其余的大小、类型、名称、文件、斜杠和“标记”

对我来说,最好的办法是什么


谢谢,

我找到了解决方案。仅供参考,
$files = json_decode($row['FileLocation'],true);
$values = array('BookTitle' => $row['BookTitle'],
                'Author' => $row['Author'],
                'FileLocation' => $files
)

$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($values, array ($xml, 'addChild'));
print $xml->asXML();