Sunday, 7 August 2011

夏休みに旅行をやめた話

まだ始めて間もないのに、間が開いてしまいました

この間も、別ファイルからの読み込みや、オリジナル関数の作り方を学んではいたのですが、
書くコードを考えてるうちにぐだって今にいたっています

それはおいといて、3日間夏休みがもらえることになりました
当初は、土日シンガ祝日と合わせた6日間で東南アジア3カ国を回ることを考えていました

むしろ、計画もたて、タイムライン、航空券、ツアー、宿まで決定済みでした
まずはホーチミンに飛んで、市内観光とメコンクルーズとクチトンネル訪問
ついでシェムリアップに飛び、アンコール遺跡を見る
そっからバンコクまで陸路国境越え
最後はアユタヤを見た後、飽きるまでバンコク、パタヤでマッタリ

しかし、休みの日程が確定して、いざ予約をしようと思ったときどうしようもない疑問をいだきました

で、今行く必要あるの?

そして再確認してみました
残念ながら僕が東南アジア周遊に行こうと思った最大の理由は、
「今、せっかく東南アジアにいるし」でした

しかし現実に東南アジア(シンガポール)にいる場合と
日本にいる場合での東南アジア旅行(ここではタイ往復)を比較すると
・時間、往復10時間程度の短縮
・航空券代、往復35000円程度の節約

今ここで6日間をまるまるエンジニアリングにあてられることは、どれだけの価値があるだろう
そして、エンジニアリングによって「サービスを作れる」ようになったとき
僕の目の前に広がりつながることのできる世界は、どれだけ広大なのだろう

そして決めたのです
「夏休みは引きこもろう」と

Thursday, 21 July 2011

ソースコードの貼り付け方

さて、順調に記事を重ねている現状ではありますが、
一つ大きな懸念を放置したまま進んでおりました

それは、ペースト時ソースコードの改行とかインデントが無視されてしまうことです
これでは仮にこのブログを呼んでくれる方がいても、コードは読んでくれないでしょう

そしてとりあえず使うことにしたのがコレ
ソースコード HTML化 コンバーター「唐辛子」

まずはブログ設定からCSSコードを貼付け
そしてコンバート、HTML化されたコードを貼りつけると…
<html>
<body>
<?php 
    for( $num = 0; $num <= 100; $num ++ ){
        if( strpos($num,"3") !== false || $num%3 == 0 ) {
?>
<span style="color:#FF0000;"><?php echo($num); ?></span>
<?php 
}
        else{echo($num);
}
}
?>
</body>
</html>

よしよし

ちなみにこのページにはもっと色々な方法がのっておりました
・javascriptで変換
・HTMLコードに変換して貼付け
・ブログツール用のプラグインで変換
・共有してURL生成して貼付け
等の方法があるみたいです

職場でちょくちょくwordpressという単語を聞いていただけに、
ブログツールとかちょっと使ってみたいな~と思いますがとりあえずこちらも先送りで

Wednesday, 20 July 2011

subwayでオーダーするコード

今日は、arrayとforeachの勉強をしたので、
復習がてら書いていこうと思います

この記事、最初は勉強したことを箇条書きにしようかと思っていたのですが、
僕が勉強に使ってるこの記事の最後に都合よく課題がありました

「マルチセレクトリストで選んだものを配列として取得し、foreachで記述しよう」

ここで急にインスパイアが僕を襲いました。これはsubwayっぽい。

みなさん、サンドイッチ屋のsubwayをご存知でしょうか
シンガポールのsubwayは、セットにするとポテトではなくカントリーマームみたいな甘~いクッキーがついてきて、僕のお気に入りなのです

で、そのsubwayの特徴の1つがはさむ野菜を自由に選べること
ということで、はさむ野菜をマルチセレクトリストで指定すると、
店員が野菜を確認した後ソースを進めてくるコードを書くことにしました

<html>
<body>
<?php
    if(!isset($_POST['submit'])){
?>
店員:野菜はどうされますか?<br />
    <form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>"" method="POST"> 
     <select name="vegetable[]" multiple size="5">
        <option value="レタス">レタス
        <option value="トマト">トマト
        <option value="きゅうり">きゅうり
        <option value="オニオン">オニオン
        <option value="オリーブ">オリーブ
        <option value="チリ">チリ
        <option value="ピクルス">ピクルス
     </select><br />
    <input type="submit" name="submit" value="オーダー"> 
    </form>
<?php
    }
else{
    if(is_array($_POST['vegetable'])){
        foreach($_POST['vegetable'] as $vege){
            echo($vege .'と');} ?>
でよろしいですね?<br />
オススメのソースは
<?php 
    if(count($_POST['vegetable']) >= 5 ){
        $recommend="BBQソース";}
    elseif(count($_POST['vegetable']) >= 3 ){
        $recommend="スイートオニオンソース";}
    else{$recommend="ハニーマスタード";} 
            echo($recommend); ?>になります
<?php
}
    else { echo('野菜お嫌いなんですね'); }
}
?>
</body>
</html>

苦心の末にできたのがこれ

途中でひっかかって修正した部分は、
・<select name="vegetable[]"の[]を付け忘れる⇒データ取得されず
・if(count($_POST['vegetable']) >= 5 )をif(count($_POST['vegetable']); >= 5 )に
・オススメソースのif構文で延々とエラー⇒手打ちで書きなおしたらなぜか通る
最後のやつはいろいろ変えて試して相当時間食いました。半時間ほど

あと$_SERVER['PHP_SELF']はXSS脆弱性があるらしい
対策等を見つけましたが、今は深入りすべきではないと判断


▼今日学んだこと
・$aaa=array(a,b,c) 変数に配列を代入
・$aaa=( a => b, c => d) 連想配列の書き方の1つ
・foreach($aaa as $aa){} 配列を全部繰り返し
・配列をいじる関数の存在 countとかexplodeとか
・print_rで見ながらデバッグ

Saturday, 16 July 2011

php学習再開

今日からphpの勉強を再開したことに伴い、
その記録をブログに残していこうと思います

最初の記事は、簡単な自己紹介とナベアツコードを

僕は現在シンガポールに常駐して、日本のガラケー向けソーシャルアプリを作っています
役割はプランニング、htmlコーディング、ログ解析、雑用となんでも屋さん状態
そんな僕がプログラミングを学ぶ理由は、現在のスピード感・自由度の向上であったり、
細々とでも自分の作りたいwebサービスを作って運営する、という将来のあり方を見据えてのものであったりします


そんな僕がphpのとっかかり用に選んだのはこのサイトのこの記事
Melonfireのファウンダーが2004年に書いたちょっと古いものです
「php begginer」 でググってTOPのサイト選んだだけですが
ちなみに、環境はwindowsにxamppをインストールして使っています
エディタは秀丸にzenコーディングマクロとかいれて少しカスタムしたものです

そして今日とりあえず書いたコードがこれ

<?php 
for( $num = 0; $num <= 100; $num ++ ){ if( strpos($num,"3") !== false || $num%3 == 0 ) {?><span style="color:#FF0000;"><?php echo($num); ?></span><?php } echo{print($num); }}?>

「3がつく時と3の倍数でアホになるコード」です
とりあえず赤くすることでアホということにしておきました

去年の9月頃、phpの勉強を始めると言った僕に職場のエンジニアの方がくださった課題
こう書くんだな~とか思いつつ実際にはかかず、
勉強を中断してしまったあの日を乗り越えやっと書きました

ネットで検索すると、結構いろんな書き方が出てきますが、
僕のはとりあえず赤字にする部分の書き方がいけてないな~と思い書き直しました
"の扱いに困るも、"は前に\(円マーク)でエスケープすることを知り
echo( "<span style=\"color:#FF0000;\">".$num."</span>");
でいけました

▼今日学んだこと
・forで繰り返し処理-for(開始条件、終了条件、繰り返し方法){処理]
・if,elseの条件分岐-if(条件){処理}elseif(){}else{}
・echo時、",'は\(半角¥)でエスケープ

今後はせっかく仕事で目の前に豊富なコードがあるわけですので、新機能の開発で学んでいきたいですね