【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

はじめまして。
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];
}
}

A 回答 (2件)

小生は同書籍を購入し、今現在手元にある状態で書いています。



さて、この書籍ですが冒頭【はじめに】の項目で書かれているように、対象読者を『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が''(空白文字列)のままだった場合、その携帯電話の持ち主は会員ではないことがわかります。

というのが、簡単な解説ですかね。
    • good
    • 0
この回答へのお礼

ご丁寧な解説ありがとうございます!
どうしてもPHPで携帯サイトを作らなければいけない状況となりかなり焦っています・・・
また機会があればご指導の程よろしくお願い致します。

お礼日時:2008/12/12 00:29

プログラムの意味はBellBellさんのいうとおりです。



ただ・・・
この本は、持っていませんが、ここで書かれた方法は非現実的です。この本の他のところに、データベースを使用した方法でも書いてあれば、別ですが、もし全編がこの調子でしたら、PHPやロジックに関しては、あまり信用しない方がいいでしょう。

10人、20人ならともかく、何万人ものユーザデータをファイルから読み込んで、頭から1件ずつ比較するなど、考えられません。

携帯特有の話に関しては、amazonのレビューを見る限りでは、良書のようですね。
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます!
アドバイスを頂けて非常に参考になります。
今後も機械があればご指導の程よろしくお願い致します。

お礼日時:2008/12/12 00:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!