用php合并两个文件文本

时间:2013-03-07 13:08:12

标签: php

我有两个我用这种方式创建的文本文件:

<?php
$lines = file('Country.txt');
$newf = array();
foreach ($lines as $line)
  $newf[] = substr($line, 2);
file_put_contents('country2.txt', implode("\n", $newf));


$lines2 = file('countryenglish.txt');
$newf2 = array();
foreach ($lines2 as $line)
  $newf2[] = substr($line, 3);
file_put_contents('countryenglish2.txt', implode("\n", $newf2));

?>

两者都显示如下数据:

Country2.txt: 
Text1Data1
text1Data2
text1Data3
> 
countryenglish2.txt 
Text2Data1
text2Data2
text2Data3

我想展示:

Text2Data1Text1Data1 
text2Data2text1Data2
text2Data3text1Data3

提前感谢您的帮助!

5 个答案:

答案 0 :(得分:1)

试试这个:您需要提供第三个参数FILE_APPEND,否则它将覆盖该文件。

file_put_contents('countryenglish2.txt', implode("\n", $newf2), FILE_APPEND);

参考:http://php.net/manual/en/function.file-put-contents.php

答案 1 :(得分:1)

从您的功能,您可以这样做:

$newf3 = array();
$to = count($newf2);

for ($i=0; $i<$to; $i++) {
  $newf3[] = $newf2[$i] . $newf1[$i];
}

print_r($newf3);

答案 2 :(得分:1)

您可以尝试这样的事情:

$lines = file('Country.txt');
$lines2 = file('countryenglish.txt');

foreach ($lines as $key => $val) {
    $lines[$key] = $val.$lines2[$key];
}

file_put_contents('countryenglish2.txt', implode("\n", $lines));

答案 3 :(得分:0)

上面的文件追加答案是最好的方法。以下是您参考http://w3schools.com/php/php_file.asp

的来源

答案 4 :(得分:0)

U可以签出以下内容:https://github.com/bircher/php-merge

  

在处理文本修订时,有时会遇到一个问题,即基于同一原始文本存在多个修订。我们不想合并一个版本,而要舍弃另一个版本。

     

Git已经很好地做到了。在php应用程序中,我们需要一个简单的工具来执行相同的操作。 xdiff PECL扩展具有xdiff_string_merge3函数。但是xdiff_string_merge3的行为不同于git,而xdiff可能在您的系统上不可用。

     

PhpMerge是一个解决此问题的小型库。有两类:\ PhpMerge \ PhpMerge和\ PhpMerge \ GitMerge,它们实现仅具有合并方法的\ PhpMerge \ PhpMergeInterface。

     

PhpMerge使用SebastianBergmann \ Diff \ Differ来获取不同版本之间的差异,并从中计算合并的文本。 GitMerge使用GitWrapper \ GitWrapper,将文本写入临时文件,并使用命令行git合并文本。