facebook twitter hatena line email

Php/ツール/行末が\r\nであるファイルの検出

提供: 初心者エンジニアの簡易メモ
2025年3月8日 (土) 00:05時点におけるAdmin (トーク | 投稿記録)による版 (Admin がページ「Php/ツール/行末が¥r¥nであるファイルの検出」を「Php/ツール/行末が\r\nであるファイルの検出」に、リダイレクトを残さずに移動しました)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
<?php
function detectCRLF($dir)
{
    $rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
    
    $crlfFiles = [];
    foreach ($rii as $file) {
        if ($file->isDir()) {
            continue;
        }
        
        if (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $content = file_get_contents($file->getPathname());
            if (preg_match("/\r\n/", $content)) {
                $crlfFiles[] = $file->getPathname();
            }
        }
    }
    
    if (count($crlfFiles) > 0) {
        echo "CRLF detected in the following PHP files:\n";
        foreach ($crlfFiles as $file) {
            echo $file . "\n";
        }
    } else {
        echo "No PHP files with CRLF line endings found.";
    }
}

// 実行
$directory = $argv[1] ?? '.'; // コマンドライン引数が指定されていなければカレントディレクトリ

detectCRLF($directory);