Seo tools

Neo Inspiration

  • Search

    • About Me

      • inspi 改め
        jakk@webアーキテクト(自称)
        php,javascript,seoなど
        得意技は extract();



  • Categories

  • Ranking

  • Comments

  • Others


  • Archive for 3 月, 2008

    Googleの技術書

    水曜日, 3 月 26th, 2008

    仕事の関係でSEOに関してだいぶ動向が把握できるようになり、エントリーもするようになったんですが、
    その際質問だったり、メールやコメント等を頂くようになり(めちゃくちゃうれしいですが!)、
    また色々なSEOの方のブログを拝見していて気づいたことは、

    意外とSEO専門家は技術に詳しくない(別に私もぶっとんで詳しいわけではないですが。。。)

    ということ。

    ということで、この本
    技術書なんですが、SEOやっている方にも進めてみたいと思い。

    Googleを支える技術 ~巨大システムの内側の世界

    ↑アフィリリンクなので踏むのが嫌なかたは
    「西田圭介 / Googleを支える技術 - 巨大システムの内側の世界」
    これでぐぐってください。

    *Googleのパテントとか見てる人にはいらないと思います。

    技術書だとおもうので、純粋にSEOとしては必要のない部分(ハードウェア管理系の話とか)が多いですが、
    map reduce(hadoopが実装してるアルゴリズム)の話とか
    1章は検索の話もあります。

    googleがすごいのは検索力よりも(検索力もすごいですが、そのすごい検索力を支えている)
    インフラの部分であるということがわかる本だと思います。

    アマゾンアフィリエイトとか始めてやったからうまく動かなかったりして。

    便利なphp foreach のオプション?

    日曜日, 3 月 23rd, 2008

    答えだけ言うと単に型キャストですがw

    foreachをまわす時

    引数が配列じゃないとこんなメッセージが

    Warning: Invalid argument supplied for foreach() in ******** on line 10

    がでるかと思うんですが、これを出さないための対応方法。

    今までこんな感じに処理してました。

    if(is_array($def)){
    foreach( $def as $k=>$v){
    print $v;
    }
    }

    が、実はこんな foreach の書き方がありました。。

    foreach( (array) $def as $k=>$v){
    print $v;
    }

    なるほど。。こういう型キャストの使い方があったのか。。

    動作の説明

    (array)$def

    で $def を array に変換してるんですね。(ちなみにこれを type casting といいます。)
    なので foreach のエラー(これは array じゃねーよ!)というエラーがでなくなると。

    これでソースが2行も減りました。

    ちなみに、 array だけじゃなく object や int もあります。
    型の相互変換

    でもさすがにこれはひどいな。。

    $binary = b”binary string”;

    最後

    こんな芸当が可能に。

    var_dump((object)(int)(string)true);
    //string(1) “1″ が表示

    必殺 チェインタイプキャスティングw

    array_merge を使った初期値設定

    金曜日, 3 月 21st, 2008

    Wordpressの内部なんかで使われてる手法なんですが、(いまさら?)
    クラスとかのコンストラクタで引数のないものだけデフォルト値をセットするみたいな時に。

    普通にやったらまあこんなかんじ

    $org = array(’a’ => ‘good’ , ‘b’ => ‘bad’);

    func_r($org);

    function func_r($org=”){
    //キーがなければデフォルト値、あったらそのデータを格納
    $a = (array_key_exists(’a', $org))?$org['a']:’default_a’;
    $b = (array_key_exists(’b', $org))?$org['b']:’default_b’;
    $c = (array_key_exists(’c', $org))?$org['c']:’default_c’;
    }
    //$a=good,$b=bad,$c=default_c が格納される

    これを array_merge を使うと

    $array = array(’a’ => ‘good’ , ‘b’ => ‘bad’);

    func_s($array);

    function func_s($org=”){
    $def = array(’a’ => ‘default_a’, ‘b’ => ‘default_b’, ‘c’ => ‘default_c’);
    $res = array_merge($def, $org);
    extract($res, EXTR_SKIP);
    }
    //$a=good,$b=bad,$c=default_c が格納される

    行数は一緒ですが、array のデフォルト値の管理がわかりやすい!
    あとなんとなく冗長じゃなくて見やすい。

    動作としては、第一引数と第二引数をみくらべて
    同じキー文字列があれば、そのキーに関する第二引数の値が、 第一引数の値を上書きします。
    (文字通りマージする)

    ⇒ちなみにキーが数値の場合は追記になっちゃいますので注意
    ($org[1]と$def[1]をマージすると$res[1]と$res[2]に入っちゃいます)

    2008/11/22 12:17:23