人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

初心者です。
PHPでCSVファイルを読み込んで表示させようとしています。フォームに件数を入力して、その件数のデータを表示させたいのですが、データ数よりも多い数値を指定するとエラーになるのを回避するために、行数を予め取得したいのですが、やり方がわかりません。教えていただけないでしょうか?
また、フォームに入力した文字が数字かどうかを判断するにはどうしたらいいのでしょうか?

初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

●質問者: inkyo
●カテゴリ:インターネット ウェブ制作
✍キーワード:CSV PHP エラー データ ファイル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ito-yu
●35ポイント

数字かどうかチェックしてエラーにしたい場合は、$num に入っているとして

if(!is_int($num)){
 //エラー処理
}

行数をあらかじめ取得するよりも、CSVが終端に達したらループを抜ける、みたいな方が良いと思います。

for($i = 0; $i < $num; $i ++){
 if(feof($fp)){
 break;
 }
 $row = fgetcsv($fp, 4096);
 //処理
}

http://jp.php.net/feof

◎質問者からの返答

ありがとうございます!

forを使って作っていたので、早速試して成功しました。助かりました。


2 ● vector
●35ポイント

行数をあらかじめ取得するには

$aFileData = file(ファイルパス);

$iRowCount = count($aFileData);

で、取得できます。


数字かどうかを判別するには

小数点も数字とするのであれば、

is_numeric()を使います。

http://q.hatena.ne.jp/answer


マイナスなどの符号は文字としてみるのであれば

if (preg_match('/^[0-9]+$/', 入力された文字) === 0) {

// 数字だけ

} else {

// 数字以外の文字がある

}

とすればよいかと

http://au2.php.net/manual/ja/function.preg-match.php

◎質問者からの返答

ありがとうございます!

○○以下を入力してください、といったエラーメッセージを出したかったので、早速試して成功しました。

preg_match も使ってみたいと思います。

助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ