質問: 普段の業務で使い捨てのPHPスクリプトを書いて、さまざまなCSVファイルの読み込みを行うことが多いです。 難しいとは思うのですが、CSVファイルの1行目がヘッダ行であるかどうかを自動的に検出する方法はありますでしょうか? たとえばファイルの冒頭の3-4行を抽出して、1行目と他の行を比べるにしても 業務のCSVファイルは、普通の人が手動で作っているため、さまざまなケースが考えられます。 たとえば * ヘッダ行に数字だけのセルがある * ヘッダ行だけでなくファイルのほとんどがタブ(\t)である * 複数行のヘッダ行がある ほか、ほんとうにいろいろなケースがあると思います。 ものすごく労力のかかるような方法や本格的な解析までは望んでいませんので、確実でなくても何かもしいいやり方があればご教示ください。
回答: これは難しいです。おそらく良い方法はないでしょうね。 せいぜい * 空白のセルがある →ヘッダ行ではない * 日にちや金額、数値などのフォーマットのデータがある →ヘッダ行ではない * 同じ値のセルがある →ヘッダ行ではない といったような地道なことをやるしかないのではないでしょうか。 たぶんExcelなどでCSVファイルをインポートする時も、このような判断でヘッダ行か否かを判断しているのではないかと思います。