从PHP

时间:2017-04-25 20:09:11

标签: php python file curl

我有2个.txt文件。 首先.txt文件是curl数据(机器人),它总是得到2000 .txt行,包括新的

,第二个.txt文件包含第一个.txt文件的新数据。 我使用第二个.txt文件作为脚本。

我不能删除共和党人。 (我的意思是我尝试根据旧值获取新值)因此脚本始终使用new和old的数据。

有没有办法打开所有文件,删除重复项并相应地将行保存到第二个文件?

有三个刷新示例

  

这里是FIRST刷新和2 .txt文件

第一个.txt文件(你应该认为它有2000行)刷新卷曲机器人

Something here10
Something here9
Something here8
Something here7
Something here6
Something here5
Something here4
Something here3
Something here2
Something here1

我将使用的第二个.txt文件

Something here10
Something here9
Something here8
Something here7
Something here6
Something here5
Something here4
Something here3
Something here2
Something here1
  

这里是SECOND刷新和2 .txt文件

第一个.txt文件(你应该认为它有2000行)刷新curl bot

Something here14
Something here13
Something here12
Something here11
Something here10
Something here9
Something here8
Something here7
Something here6
Something here5

我将使用的第二个.txt文件

Something here14
Something here13
Something here12
Something here11
  

这里是THIRD refresh和2 .txt文件

第一个.txt文件(你应该认为它有2000行)刷新curl bot

Something here16
Something here15
Something here14
Something here13
Something here12
Something here11
Something here10
Something here9
Something here8
Something here7

我将使用的第二个.txt文件

Something here16
Something here15

修改: 我发布了两个新刷新

  

这是第四次刷新和2 .txt文件

第一个.txt文件(你应该认为它有2000行)刷新curl bot

Something here20
Something here19
Something here18
Something here17
Something here16
Something here15
Something here14
Something here13
Something here12
Something here11

我将使用的第二个.txt文件

Something here20
Something here19
Something here18
Something here17
  

这里是FIFTH刷新和2 .txt文件

第一个.txt文件(你应该认为它有2000行)刷新curl bot

Something here24
Something here23
Something here22
Something here21
Something here20
Something here19
Something here18
Something here17
Something here16
Something here15

我将使用的第二个.txt文件

Something here24
Something here23
Something here22
Something here21

2 个答案:

答案 0 :(得分:1)

  

(阅读和解释评论)我认为您需要使用PHP array push

以下代码
<?php

error_reporting(E_ALL); ini_set('display_errors', 1);

$array1 = array('here9', 'here8', 'here7', 'here6', 'here5', 'here4', 'here3', 'here2', 'here1');
$array2 = array('here4', 'here3', 'here2', 'here1');

echo"Array 1:<br />"; // just checking -> will be removed
print_r($array1); // just checking -> will be removed

echo"<br /><br />Array 2:<br />"; // just checking -> will be removed
print_r($array2); // just checking -> will be removed

echo"<br /><br />"; // will be removed

$newarray = array(); // create new empty array to receive new data

foreach ($array1 as $value) { /* parse array */

// here, we'll make use of PHP array_push
if( !in_array($value, $array2) ) { // if value is not in 2nd array

array_push($newarray, $value); // we add to new array we created

} else { /* do nothing */ }
    }

echo"New array with duplicate removed:<br />"; // just checking -> will be removed
print_r($newarray); // just checking -> will be removed

file_put_contents('output.txt', $newarray); // we write new content of array to file

?>

答案 1 :(得分:0)

我试图尽可能保持这个级别,但实质上是将每一行推到一个数组上,然后使用array_unique删除重复项:

    $line_array = array();
    $files = getFiles();
    foreach($files as $file)
    {
        $lines = $file->getAllLines();
        foreach($lines as $line)
        {
            $line_array[] = $line;
        }
    }
    $without_duplicates = array_unique($line_array);