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時、",'は\(半角¥)でエスケープ

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