はじめまして。
mana5150と申します。
最近プログラミングの勉強を始めたばかりで全くの初心者です。
わからない部分が多く皆様のお知恵を拝借させて頂きたく投稿致しました。
私は今本を参考にしながら携帯サイトの簡単ログイン画面を作ろうとしているのですが、以下の箇所が全くといっていい程理解できません。本やサイトなど見ながら理解しようとしているのですがどういった処理の流れなのか全くイメージが掴めません・・・どなたか解説して頂けないでしょうか?初心者的質問になってしまうのですが何卒よろしくお願い致します。
PHP×携帯サイト-デベロッパーズバイブル
http://www.amazon.co.jp/PHP%C3%97%E6%90%BA%E5%B8 …
//会員データを読み込む
$member_array = array();
$filename = 'member_data.txt';
$handle = fopen($filename, 'r');
while(($member = fgetcsv($handle) !== false)){
$member_array[] = $member;
}
fclose($handle);
//会員データから当該データを取得する
$name = '';
foreach ($member_array as $member){
if(strcmp($member[0],$mobile_id) === 0 && strcmp($member[1], $carrier) === 0)
{
$name = $member[2];
}
}
No.1ベストアンサー
- 回答日時:
小生は同書籍を購入し、今現在手元にある状態で書いています。
さて、この書籍ですが冒頭【はじめに】の項目で書かれているように、対象読者を『PHPでWebサイト向けプログラミングをしたことがある方』となっています。
まずは、パソコン向けのPHPプログラミング書籍でPHPの基礎的な事を身に付け、次にこの書籍に移ると早道だと思いますよ。
他には、携帯電話向けサイト作成の解説本も役に立つと思います。
それはともかく、書かれたプログラムを簡単に解説すると、
member_data.txtの中身は
aaaaaaaaaaaaaa,docomo,Yamada[改行]
bbbbbbbbbbbbbb,au,Tanaka[改行]
といった形で、一行毎に会員(メンバー)データが並べられていて、会員毎のデータはコンマ(,)で区切られた、携帯電話ID、携帯電話会社、会員名と並べられたCSV形式のデータです。
最初のWhileループ内で、member_data.txtに書かれた会員データを一行ずつ読み込み、配列に格納します。
$member_arrayに全員分読み込みます。
次の、foreachループ内では、$member_arrayの各それぞれの会員データの詳細と携帯電話から取得された携帯ID(加入者ID?)と、携帯電話会社を比較して、その会員が誰であるかを検索しています。
$mobile_id、$carrierの取得ロジックは質問内には存在しない別の場所で設定された、携帯ID、および携帯会社が格納されています。
すべてのメンバーが検索され終わった時点でも、$nameが''(空白文字列)のままだった場合、その携帯電話の持ち主は会員ではないことがわかります。
というのが、簡単な解説ですかね。
ご丁寧な解説ありがとうございます!
どうしてもPHPで携帯サイトを作らなければいけない状況となりかなり焦っています・・・
また機会があればご指導の程よろしくお願い致します。
No.2
- 回答日時:
プログラムの意味はBellBellさんのいうとおりです。
ただ・・・
この本は、持っていませんが、ここで書かれた方法は非現実的です。この本の他のところに、データベースを使用した方法でも書いてあれば、別ですが、もし全編がこの調子でしたら、PHPやロジックに関しては、あまり信用しない方がいいでしょう。
10人、20人ならともかく、何万人ものユーザデータをファイルから読み込んで、頭から1件ずつ比較するなど、考えられません。
携帯特有の話に関しては、amazonのレビューを見る限りでは、良書のようですね。
ご回答頂きありがとうございます!
アドバイスを頂けて非常に参考になります。
今後も機械があればご指導の程よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
VBA 空白セルを削除ではない方...
-
[C言語] コメント文字列を無視...
-
【エクセル】測定時間がバラバ...
-
vba ドロップダウンリストの図...
-
CString型の文字列連結について
-
Accessで該当データにフラグを...
-
C# でDataTableの更新を高速化...
-
メモ帳(テキストデータ)をExc...
-
多量のSUMIF式を軽くしたい
-
特定のデータの抽出方法を教え...
-
配列でデータが入っている要素...
-
アクセス2000で画像データ...
-
マクロで同じフォルダにある画...
-
ユーザーフォームのテキストボ...
-
VBにおいてフォーム間の変数の...
-
EXCELVBAでSQLserverからデータ...
-
Fortranで/(スラッシュ)を含...
-
サムチェックのルール
-
ACCESSからEXCELに出力する際、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
VBA 円グラフ 特定条件に一致し...
-
メモ帳(テキストデータ)をExc...
-
EXCELVBAでSQLserverからデータ...
-
VBA 空白セルを削除ではない方...
-
S9タイプからXタイプにデータ...
-
ブレーカー落ちで壊れたりしな...
-
Accessで該当データにフラグを...
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
VBAを使ってOutlookメール本文...
-
特定のデータの抽出方法を教え...
-
この行は既に別のテーブルに属...
-
カンマからスラッシュに
-
VBAでシートからコンボボックス...
-
GridViewの行の一部を複数行にする
-
ユーザーフォームのテキストボ...
-
<VB>String→Object
おすすめ情報