根据数组中的字符串合并文件

时间:2018-08-16 05:29:07

标签: php arrays xml

美好的一天,
所以这是一个主意,我有很多XML链接,我想将它们合并为一个XML并将其转换为CSV文件,但是由于将其一一放置在文本框中需要付出很大的努力,决定将其输入到单个文本区域中,每个链接均由换行符分隔。所以如果有10个链接,那么textarea中也应该有10行链接
这是我的代码

$str = $_POST['inp'];
$arr = explode("\n", $str);

$array = array(); 
$cnt=0;
$ct=0;

foreach ($arr as $line) {
$array[] = $line;
$cnt++;
};

function mergeFile ( DOMDocument $target, $fileName )    {
$source = new DOMDocument();
$source->load($fileName);
foreach ( $source->getElementsByTagName("resValidateFakturPm") as $row )   {
$import = $target->importNode($row, true);
$target->documentElement->appendChild($import);
}
}

$target = new DOMDocument();
$target->loadXML('<?xml version="1.0" encoding="utf-8"?><bunch></bunch>');

for ($ct=0;$ct<count($array);$ct++){
     mergeFile($target, $array[$ct]);
}


$target->save("res.xml");

但是有一个小问题,当我在textarea上放置10个链接时,它没有在CSV文件中生成10行,而是仅生成了1行,最后一个。 9行之前为空白。

我的代码在哪里?

1 个答案:

答案 0 :(得分:0)

您将$ target赋予该函数并修改本地副本。

1)将方法主体更改为

function mergeFile ( DOMDocument &$target, $fileName )

2)return $target在功能mergeFile和

for ($ct=0; $ct < count($array); $ct++)
{
     $target = mergeFile($target, $array[$ct]);
}