逐行读取文本文件并搜索每行另一个文件php脚本

时间:2014-06-12 08:20:26

标签: php linux bash shell unix

我想逐行读取一个文件,并在unıx.an上用php脚本搜索每一行另一个文件,将结果写入另一个文件。

我该怎么做? 我的意思是;

文件1:

192.168.1.2
192.168.1.3
192.168.1.5

file2的:

.....
192.168.1.3
192.168.12.123
192.168.34.56
192.168.1.5
....

file3的:

192.168.1.3
192.168.1.5

我想读取每行的file1并搜索每一行文件2.如果我匹配此搜索,则写入结果file3。

2 个答案:

答案 0 :(得分:1)

<?php
$file1 = file('file1', FILE_SKIP_EMPTY_LINES);
$file2 = file('file2', FILE_SKIP_EMPTY_LINES);
$file3Content = implode('', array_intersect($file1, $file2));
file_put_contents('file3', $file3Content);

答案 1 :(得分:1)

在PHP中,您可以使用file()函数读取这两个文件,它们都将作为数组返回。然后使用array_intersect()。考虑这个例子:

$ip1 = file('ip1.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$ip2 = file('ip2.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$results = array_intersect($ip1, $ip2); // intersection of two arrays
$ip3 = implode("\n", $results); // put them back together
file_put_contents('ip3.txt', $ip3); // put it inside the third file

$results应该包含(根据您的示例):

Array
(
    [1] => 192.168.1.3
    [2] => 192.168.1.5
)