php_PHP チュートリアルでテキスト ファイル内の重複行を削除する方法

WBOY
リリース: 2016-07-13 09:55:36
オリジナル
1043 人が閲覧しました

phpでテキストファイルの重複行を削除する方法

phpでテキストファイルの重複行を削除する方法

この例では、PHP でテキスト ファイル内の重複行を削除する方法を説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

このphp関数は、ファイル内の重複行を削除するために使用され、大文字と小文字を無視して改行文字を指定するかどうかを指定することもできます。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

/**

*重複行を削除

* この関数は、指定されたテキスト ファイルの重複した行をすべて削除します。

*

* @パラメータ文字列

* @param bool

* @戻り文字列

*/

関数 RemoveDuplicatedLines($Filepath, $IgnoreCase=false, $NewLine="n"){

if (!file_exists($Filepath)){

$ErrorMsg = 'RemoveDuplicatedLines エラー: ';

$ErrorMsg .= '指定されたファイル ' . $Filepath ' は存在しません!';

死ぬ($ErrorMsg);

}

$Content = file_get_contents($Filepath);

$Content = RemoveDuplicatedLinesByString($Content, $IgnoreCase, $NewLine);

// ファイルは書き込み可能ですか?

if (!is_writeable($Filepath)){

$ErrorMsg = 'RemoveDuplicatedLines エラー: ';

$ErrorMsg .= '指定されたファイル ' . $Filepath ' は書き込み可能ではありません!';

死ぬ($ErrorMsg);

}

//新しいファイルを書き込みます

$FileResource = fopen($Filepath, 'w+');

fwrite($FileResource, $Content);

fclose($FileResource);

}

/**

* RemoveDuplicatedLinesByString

* この関数は、指定された文字列の重複した行をすべて削除します。

*

* @パラメータ文字列

* @param bool

* @戻り文字列

*/

関数 RemoveDuplicatedLinesByString($Lines, $IgnoreCase=false, $NewLine="n"){

if (is_array($Lines))

$Lines = implode($NewLine, $Lines);

$Lines =explode($NewLine, $Lines);

$LineArray = array();

$重複 = 0;

// 指定されたファイルのすべての行を調べます

for ($Line=0; $Line // 現在の行の空白をトリミングします

$CurrentLine = トリム($Lines[$Line]);

// 空行をスキップします

if ($CurrentLine == '')

続き;

//行の内容を配列キーとして使用します

$LineKey = $CurrentLine;

if ($IgnoreCase)

$LineKey = strto lower($LineKey);

// 配列キーが既に存在するかどうかを確認します。

// そうでない場合は追加し、そうでない場合はカウンターを増やします

if (!isset($LineArray[$LineKey]))

$LineArray[$LineKey] = $CurrentLine;

その他

$重複++;

}

// 配列をソートします

asort($LineArray);

// 削除された行数を返します

return implode($NewLine, array_values($LineArray));

}

使用范例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

// 例 1

// 最初のパラメータで定義されたファイルの重複した行をすべて削除します。

$RemovedLinesCount = RemoveDuplicatedLines('test.txt');

print "test.txt ファイルから $RemovedLinesCount の重複行を削除しました。";

// 例 2 (大文字と小文字を区別しない)

// 上記と同じですが、行の大文字と小文字を無視するだけです。

RemoveDuplicatedLines('test.txt', true);

// 例 3 (カスタム改行文字)

// 3 番目のパラメータを使用して、どの文字を定義できます

// は改行インジケーターとして使用する必要があります。この場合

// サンプル ファイルは 'foo;bar;foo;foo' のようになります

// 'foo;bar' に置き換えられます

RemoveDuplicatedLines('test.txt', false, ';');

ここに記載されている大家のphpプログラムの設計に役立つことを希望します。

http://www.bkjia.com/PHPjc/991652.html

tru​​ehttp://www.bkjia.com/PHPjc/991652.html技術記事 php 削除文 本文中の繰り返し実行方法 php 削除文 本文中の繰り返し実行方法 この例では、php 削除文 本文中の繰り返し実行方法を説明しています。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート