2

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

<?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

在此先感谢您的帮助!

4

5 回答 5

1

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

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

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

于 2013-03-07T13:11:22.457 回答
1

从您的函数中,您可以执行以下操作:

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

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

print_r($newf3);
于 2013-03-07T13:13:11.077 回答
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));
于 2013-03-07T13:16:40.230 回答
0

上面的文件附加答案是最好的方法。这里有一个来源供您参考http://w3schools.com/php/php_file.asp

于 2013-03-07T13:14:48.703 回答
0

你可以签出这个:https ://github.com/bircher/php-merge

在处理文本的修订时,有时会面临一个问题,即基于相同的原始文本有多个修订。我们不想选择一个并丢弃另一个,而是要合并两个修订版。

Git 已经非常出色地做到了这一点。在 php 应用程序中,我们需要一个简单的工具来做同样的事情。有 xdiff_string_merge3 功能的 xdiff PECL 扩展。但是 xdiff_string_merge3 的行为方式与 git 不同,并且 xdiff 在您的系统上可能不可用。

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

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

于 2019-03-11T00:28:06.033 回答