タグ: PHP

  • OSX(El Capitan)で、MAMPのPHPをコマンドラインで実行するのが面倒なので、シンボリックリンクで便利に繋げてみた。

    絶賛MAMP PROユーザーです。(たった59USDで劇的に便利になるのに意外と周りの人が使ってない……)

    で、最近のPHPでの開発となると、コマンドラインでPHPを叩いてテンプレートを作成する!みたいな便利機能が多いです。
    で、絶賛MAMP PROユーザーなので(しつこいw)、OSXのコマンドラインから叩くPHPと、実際にブラウザ経由で走るPHPのバージョンが違ったり、DBに接続する方法が違ったりと面倒なことに直面します。

    今までは、

    $ /Applications/MAMP/bin/php/php5.5.26/bin/php app/console doctrine:generate:entity

    みたいに長々とMAMPのPHPのフルパスを打ってた(なぜ!?)んだけど、いい加減ちゃんとやれよ!と怒られそう(誰に?)なので簡便化してみました、というご報告。

    まず、Googleさんに聞いてみたら、それらしい記事をご紹介いただいたので、そのままやってみたら、Operation not permittedって怒られる。
    なんで?とよくよく見てみたら、その記事の冒頭にちゃんと「怒られた方はこちら」ってちゃんと書いてた。

    ようするにEl Capitanの場合、Rootlessというセキュリティ機能が追加されて、/usr/binへの変更ができないんだそうです。

    先の記事だと「その機能を無効にしちゃおうぜ!」って方法なんだけど、さすがにそれはヤダ。

    というわけで、自分のユーザーディレクトリに各MAMP PHPのバージョンのシンボリックを配置しちゃおうぜ!ってのが本題です。
    (前振りが長くて申し訳ありませんでした)

    (さらに…)

  • Codeigniterで、長い件名のメールを送信する際の文字化け対策。

    PHPフレームワークで、今時Codeigniter(以下CI)を使っている人も少ないかと思いますが、まだPHP5.3必須なFuelPHPに乗り換えられずに悶々しているモトヲです、こんにちは。

    で、CIのEmailヘルパーを使ってメールを送信する場合、長い件名だと文字化けしちゃうんですよね。
    ずっと見てみぬフリしてた、というか「短い件名で設定してください」てな上からなお願いをしてたんですけど、対策を練ってみました。

    以下ソース。

    (さらに…)

  • Twitter API 1.1化するにあたっての最低限の押さえどころ。

    TwitterのAPIバージョンが1.0から1.1になり、いろいろ仕様が変更となりました(公式ドキュメントはこちら)。

    トークン(アプリ利用ユーザー)が10万を超える場合には許可が必要!という制限がついたことで、ディベロッパーがキャンキャン吠えてますが、Webサイトでキャンペーンを行うに当たってのアプリ程度ならなんのアタリもありません( ー`дー´)キリッ

    でもまぁ仕様が変わるってんで、とりあえず自前のサービスであるtwitSandboxを1.1化してみて、おおよそココをチェックしておれば大丈夫!というところをまとめてみました。

    (さらに…)

  • OS X(Lion)にPHPのエクステンションmcryptをインストールするメモ。

    はい、備忘録です。

    DBサーバ上に暗号化した状態で放り込んだデータをどこで複合する?ってな話になったワケですよ。
    サーバ上に一覧を閲覧する管理ツールを設置するのもヒヤヒヤもんなので、複合作業はローカルでやろうって腹積もり。

    ローカルで走るPHPを書いたは良いんだけど、暗号化・復号化に使うmcryptってのがウチのOS Xに入ってなかったので、使えるようにする備忘録です、はい。

    (さらに…)

  • facebookのPHP-SDKで、facebookページが「いいね」されているかをチェックして表示を切り替えてみる。

    facebookページで「いいね」されている時だけ応募フォームを出したいの。

    そんなオーダーがありまして。

    facebookって頻繁に仕様が変更(拡張)しておりまして、その仕様変更の都度リンクのタイトルが変わっていたり、リンクの場所が変わっていたりで、毎回毎回「あれ?どこ??」と思うのです。

    というわけで2011.10.13の備忘録。明日になったら変わっているかもしれんけどね、もう知らんよ。

    (さらに…)

  • facebookへの投稿で、Youtubeのサムネイルを表示しつつの公式サイトへリンク、とか。

    facebookで、(↑)みたいなことってどうやってできるんですか〜〜〜?って問い合わせがありましたので回答を晒してみるテスト。

    (さらに…)

  • facebookのPHP-SDKを使わずに自力でウォール書き込みまで実装(´Д⊂ヽ

    先日のエントリーで、PHP-SDK使えば超カンタンだぜ!的に書いたんですが、ワタクシのお客様がWebARENAの共用サーバを利用しておりまして、そのサーバのPHPのバージョンが5.1.6だったため、PHP-SDK自体が使えませんでした。・゚・(ノД`)・゚・。(まぁPHP4じゃないだけマシっちゃーマシですね)

    どこにも書いてない(探せなかった)んですが、「json_decodeを使っている」ってことは「PHP 5 >= 5.2.0」なんですね。

    てわけで、自力で実装してみました。
    とは云ってもフルスクラッチは時間がかかって仕方ないので、PEARだけは使わせて頂きます!

    (さらに…)

  • facebookのPHP-SDKで、ウォールに書き込んだり、フレンドリストを取得したり。

    TwitterのAPIはほぼマスターしたんだけど、facebook APIはまだ触ってみたことなかったのでいざ挑戦!ってわけです。
    まぁたまたまそういう仕事が来そうだったので予習です、予習。


    facebook DEVELOPERSというサイトに各種ドキュメントがあります。

    (さらに…)

  • PHPで、配列の歯抜けを詰めたい!で痛感した柔軟な思考について。

    いやぁー痛感しました。

    Array
    (
        [0] => ルフィ
        [1] => ゾロ
        [4] => ウソップ
        [7] => ナミ
    )

    てな配列があって、これを

    Array
    (
        [0] => ルフィ
        [1] => ゾロ
        [2] => ウソップ
        [3] => ナミ
    )

    ってな感じに詰めたかっただけなんですよ。PHPならそれっぽい配列関数がありそうだけど無かったから、面倒だけど

    $from = array(0 => 'ルフィ', 1 => 'ゾロ', 4 => 'ウソップ', 7 => 'ナミ');
    $to = array();
    
    $i = 0;
    foreach ($from as $tmp) $to[$i++] = $tmp;

    ってやってたわけですよ。

    でもね。でもね。ぜーーーったいもっと楽チンな方法はあるはずやん!って思って調べてみたですよ。

    そしたらね。こちらのコメントにすばらしいアイデアがありましたよ。

    $ary2 = array_merge($ary1);
    print_r($ary1);
    print_r($ary2);

    のほうがよくない?

    って。

    なーるーほーどー(the world)

    そもそも、array_merge()って関数は、配列1と配列2の配列をマージするってモノですよ。そもそも最適化するってモノではないのですよ。

    けど、このアイデアをくれたhogeさんは、PHPマニュアルのarray_mergeの説明にある、

    入力配列の中にある数値添字要素の添字の数値は、 結果の配列ではゼロから始まる連続した数値に置き換えられます。

    という部分を利用したんですよね。

    「この機能は○○するものである」という部分だけに注目しちゃダメなんですねー。いやぁ参考になりました。

  • PHPで、リモートのファイルが存在するかをチェック!

    はい、備忘録です。

    PHPで、allow_url_fopenが有効となっている場合には、http経由などのリモートファイルをオープンできます。fopenは、オープンに成功すればファイルポインタリソース、エラー時に FALSE を返す、ということなので、ファイルが存在するかをチェックすることも可能(だと思います、いまのところ支障なさそうなので)。

    <?php
    //http://example.com/favicon.ico が存在するかチェック
    $fp = @fopen('http://example.com/favicon.ico', 'r');
    
    if ($fp)
    {
    	echo 'あった!';
    	fclose($fp);
    }
    else
    {
    	echo 'あれ?ないかも??';
    } 

    (さらに…)