我有2个文本文件
A.TXT
1111
2222
3333
4444
5555
b.txt
6666
1111
7777
8888
2222
9999
我正在运行此脚本
$lines1 = file("a.txt");
$data2 = file_get_contents("b.txt");
foreach($lines1 as $line1){
$line1 = trim($line1);
if(strpos($data2, $line1)){
echo $line1;
echo "<br />";
}
}
代码工作它列出了a.txt中b.txt
中可用的所有行但是我需要反转这段代码。我希望它只显示b.tx上没有的
答案 0 :(得分:0)
有很多existing components,它允许您计算文本文件之间的差异。
不要试图重新发明轮子,使用经过验证的成熟的现有代码来充满信心地加速您的开发。
答案 1 :(得分:0)
$lines1 = file("a.txt");
$data2 = file_get_contents("b.txt");
foreach($lines1 as $line1){
$line1 = trim($line1);
if(!strpos($data2, $line1)){
echo $line1;
echo "<br />";
}
}
////萨蒂我做到了......它的确有效(如果我想尝试另一个项目的话,Alex Babak我保存你的代码)
答案 2 :(得分:0)
您可以使用array_diff
:
$lines1 = file( 'a.txt', FILE_IGNORE_NEW_LINES );
$lines2 = file( 'b.txt', FILE_IGNORE_NEW_LINES );
$result = array_diff( $lines1, $lines2 );
print_r( $result );
输出:
Array
(
[2] => 3333
[3] => 4444
[4] => 5555
)
使用标记FILE_IGNORE_NEW_LINES
,file()
会为您删除换行符,因此您无需修剪数组值。
array_diff
从$lines2
中减去$lines1
的元素。
如果要将结果保存(或打印)在换行符分隔的文本中,请使用
$text = implode( "\n", $result );