Hatena::ブログ(Diary)

ちょびWeb

2010-06-06

久しぶりに更新PHP

00:37

GWもあれよあれよと合宿して終わり

また毎日お仕事と家事の日々が始まりました。

途中体調も崩れ5月は本当に「5月病」でした。

GW〜6月にかけてPHPのお勉強は土日のみ・・・。

お仕事疲れを癒したい&家事しなきゃでなかなかPHP勉強は進まず

ブログに残せるほど書いてなかったので・・・。

今回公開するのはそんなにたくさんの量じゃないですが・・・。

<?php
#画面に表示する
echo "<pre>";

$arr = file($filename);
$a = 0;
//行番号を取得して表示する 
if (isset($_GET["number"])) {
    echo ($arr[$_GET["number"]-1]);
}

foreach ($arr as $b) {
    $a++;
    $b = htmlspecialchars($b);
//行番号にリンクを付けて表示する
    echo ("<a href=\"test.php?number=$a\">$a</a>").$b;
 
}  
?>

「//」でコメントアウトした部分が今回書いたコードです。

PHPの「簡単に書ける」って部分が最近のネックです。

難しく書いたら間違っててエラーでたりとかとか・・・。

まだまだPHPを勉強しなければと思う今日この頃です。

2010-05-08

丸一日集中勉強 in 合宿

05:39

PHPできる人たちに囲まれながら、開発合宿に参加させてもらい

そこで勉強してきました。

本読んで用語を一個づつ理解して勉強する方法より

実践で作りながら…用語はわからないまま開発した方が

「なんとなく」で頭に入ることがわかりました。

現在簡単な掲示板ちっくな物を作成中です。

もちろんゼロから1人でググってググって書いて書いて…

降参する前に周りのみんなに助けてもらう方法をとりました。

ググってるのでコードが正しいかなんて見てるサイトによって違い

余計なコードも書いてたりします。

同じ様な事はみんなやっていても同じ物を作ってる方はなかなかいないので…

余計なものが書かれていないサイトなんてない訳ですがww

作りながら目標持たないと書けないと教えてもらい、何もわからない状態から…

スタート!!!!

なので目標もどこ目指せばいいのかわからなかったので、みんなに作業内容を決めてもらいました!


・掲示板(入力フォームと入力されたものが出力される物)

ググったら簡単に出てきました。多少変えなきゃ動かない部分はあるんですが、その辺は前に勉強してたので「なんとなく」分かりました。

・発言日時を表示(入力フォームの入力した時間の表示)

ググったら簡単に時間表示のコードは出てきました。次はこれを入力フォームと一緒に発言時に出力させなくてはいけないので、ものすごく迷いました。

変な場所いじればもちろんエラーになるし、今までの表示も上手く動いてくれなくなります。「書き込み時の保存」に目をつけてひたすらそこをいじる。

うごかねーYO!!!ってなりながらいじっていたところ…。全体のコードを一ヶ所じゃなく全体を見るような感じでみたらまた「なんとなく」分かりました。

・次は新着順に並び替える(入力した文章は下に向かって増えるので逆にする)

「逆」って言葉に囚われ過ぎてググるのにも一生懸命「逆」「新着順」とかでコードを探しました。いつまでたってもコードは見つからず、いつまでたっても新着順にはなりません。ここで夕飯タイム!PC前から離され「あー覚えたこと忘れる…」って思いながらご飯食べに外出…。歩きながら脳内でコードを浮かべみんなにヒントを貰いながら考えました。そうしたら…ほら、「なんとなく」理解してしまった。

配列(入力した文に上から行番号を表示)

これが苦戦したんです!!!そもそもPHPはこれが多く出てきてこれが一番重要な物らしいのでここで苦戦してたら次にもその先でもつまってしまうらしい…。

これはさすがに「なんとなく」では理解できず、合宿明けの昼まで悩みました。

これは泣けます!もうね頭パンクしちゃう!結局わからず、丁寧に一個づつ考えながら教えてもらいました。一個づつ考えたらゆっくり理解しましたが、正直1人で書くのは難しいなぁって思いました。沢山ググっても思っている物にヒットしないし参考になるいいサイトは出てこなかったので…途中余計なコード書いて出来たと思ったら全然違うコードだったりもして頭は混乱してフリーズでした。実際書いて口で上手に説明しろと言われても今はまだ無理ですねww何回も書きながらコード同士の意味や動作を理解していかないとダメかも…。ここはそうですね「ぼんやり」とわかりました。

まだ勉強不足な部分です。

二重投稿されないようにする(更新ボタン押すと投稿されるのを回避)

この配列の状態まで作った所で問題だったのが、リロードすると2重投稿されてしまうと言う問題でした。それをリロードしても投稿されない状態にすることを課題にされました。課題が結構難しいようで、みんながヒントをくれました。

「header()とlocationとリダイレクト」このキーワードを元にググりググり…

出てきたコードはわかったけど、見てるサイトが正しいのかどうかがわからない。

そのコードを書く場所はわかってもその位置が今書いてるPHPにはちゃんと動く正しい位置なのかもわからない… ここで合宿終了しちゃいました。

帰り道に質問してみた所、そのコードでその場所であっていたのである。つまり、一度試せ!ってことなんですねw 確かに試してみないと間違ってるかどうかもわからないですよねww 次からは迷わず試しますww これも「なんとなく」わかりました。

・入力フォームの位置(PHPhtmlと一緒に書く事が多いため、見やすくしなくちゃ)

二重投稿しないようにしたあとPHPを見やすくするため位置を変えました。

そうしたら入力フォームの位置が変わってしまい…

元に戻さないといけなくなりました。ググってもわからないので質問したところ…

「これはググると言うよりコードを理解して書いてないと解決できない」と言われてしました…悩んだ結果、コード全体の意味を改めて見直していきました。

今、目に見えてる部分がどこのコードかを考えPHPhtmlを移動させたところ…

出来た!!「なんとなく」より「あっ!」って感じでしたけどねw

改めてコードの書く位置を考えた課題でした。

■以上の課題を終えたコードがこちら↓■

<?php
 
$filename = "test.txt";

#ファイルが存在するなら読み込む
if (file_exists($filename)) { #ファイルが存在するかどうかを調べる
    $data = file_get_contents($filename);
} else {
    $data = "";
}

#現在の日時の表示
$time = date( "Y/m/d (D) H:i:s", time() );

#ファイルへ保存する

if (isset($_POST["data"])) {
    #値を追加する
    $tmp = $_POST["data"];
    $data = $tmp.$time."\n".$data;
    #保存
    $fh = fopen($filename, "w");
    if (!$fh) { echo "FILE OPEN ERROR!"; exit; }
    fwrite($fh, $data);

    header("location:http://localhost/~miyuki/test.php");
exit;
}
?>

<html><head>
<!-- 文字コードの指定 -->

<meta http-equiv="Content-type" content="text/html; charset=utf8">
<title>ゆどうふ</title>
</head>
<body>


<!-- 入力フォーム -->
<form action="test.php" method="post">
    <input type="text" name="data" />

    <input type="submit" value="書く"/>
</form>


<?php
#画面に表示する
echo "<pre>";

$arr = file($filename);
$a = 0;
foreach ($arr as $b) {
    $a++;
    $b = htmlspecialchars($b);
    echo $a.$b;
}    
?>

以上

合宿参加の勉強成果でした。

2010-03-30

のろのろ続き

23:14

PHPをのろのろ続けます。

php.netのチュートリアル使用して勉強してます。

■今日やった事/2010年03月30日火曜日■

<?php echo htmlspecialchars()
<?php echo (int)$_POST

チュートリアルはここまでだったんだけど…。

え?これで終わりなの…?

ん??これでPHP書けるようになったの??

え…?w

◇補足◇

ツッコミを頂いたので…。

えーっと…。

ここには物凄く短くコードを書いたので意味分からないコードが書かれていますが

ガリガリ書いてる所にはもう少しコード書いてます。

次から書いたコードを今より載せて行こうと思います。


ブログに残すって思ったより難しいね|д゚)

2010-03-20

初めて始めたよ

| 01:05

PHPを初めて始めた。

正直言って意味分からんww

だが、できるようになったらなんだか楽しそうなので

頑張って勉強する事にする!!


■今日やった事/2010年03月20日土曜日■

XAMPP インストール

phpのテキストテスト↓

<?php echo ;?>

php.netのチュートリアル使用

phpエディタ インストール

phpエディタテスト※php.netのチュートリアル使用

<?php echo $_SERVER
<?php if ()
  }else{
<?php strpos ()

ここまでをだいたい理解するのにすごく時間がかかったww

チュートリアル見ながら打ち込んでも理解出来そうも無いので…。

PHPノートでも作るかな…。

そうなのです、実はとてもアナログ人間なのですwww

こんなペースで出来るようになるんだろうかと不安になったww

だけど、頑張りますww