php

PHPでPOSTの生データを扱う

下書き保存したと思ってたらそんなものは無かった・・・ 何を書いてたのやら思い出しつつ書き直してみる。 なんとなく覚えてるんですよ。うっすらと。 多分あれだ、PHPでチェックボックスとかラジオボタンとか扱う時の話。 下書き保存してたはずなのに記事が…

クラス変数をunsetするとエラーになる

class Hoge{ public static $prop; } unset(Hoge::$prop); ブラウザで見てもぱっと見わかんないけど、ばっちりステータスコード500が返ってくる。 のでauの端末なんかだとエラーをキャッチするので要注意。

memcacheでセッションを管理する

今時はphp.iniに設定するだけで出来ちゃうみたい。 session.save_handler = memcache session.save_path = tcp://localhost:11211session.save_pathにはmemcacheを接続する際に渡しているホストとポート番号を設定する。 参考サイト: ・http://dozo.matrix.…

OpenIDを試してみる2

せっかくroot権限のあるSlicehostを借りてるので、前回できなかった証明書の更新をしてmixiのIDで認証できるようにしてみる。1、まずはhttps://mixi.jp/へアクセスして証明書をエクスポートする。 保存するファイルの種類は「証明書パスを含むX.509証明書(P…

XML_RSSクラスでRSSデータを直接読み込めるみたい

マニュアル読むとコンストラクタの引数にはファイルポインタかファイル名しか設定できないみたい。 それだとレスポンスコードを参照すると、レスポンスボディを一度ファイルに保存するか、再度リクエストをかけるかしなきゃいけない。 出来れば取得したレス…

SimpleXMLでCDATAが読めない

RSSを取得しようとSimpleXMLを使ったら、CDATAセクションの中身が空っぽに。。。 シンプル過ぎる!諦めてPEARのXML_RSSを使おうと思ったけど、調べてみたら第三引数にLIBXML_NOCDATAを指定するとCDATAも拾えるみたい。記述はこんな具合。 $xml = simplexml_l…

array_mapでスタティックメソッドを呼び出す

php

配列の各要素を引数にして関数、メソッドをコールするarray_map関数でスタティックメソッドを使う場合の記述。 class test{ public static function staticMethod( $arg ){ $ret = $arg * 2; return $ret; } } $arg = array(1,2,3,4,5,6,7); print_r(array_m…

SliceHostにmemcachedをインストール

キャッシュは今までPEARのCache_Liteを使ってたけど、メモリを使ったmemcachedの方がよさげなので一応インストール。 サーバサイドに常駐するmemcachedと、PHPからキャッシュ操作を行うPECLのMemcacheが必要。 memcachedはlibeventというライブラリを使用し…

VersionControl_SVNを使ってみた

PEARでsvnコマンドを制御できるVersionControl_SVNというのがあったので使ってみた。 ちょっとはまったところをメモ。・PEARマニュアルマニュアルの例をベースにパスやらを変えて実行したらエラー。 svnのパスが違うので修正。 //自分の環境合わせて修正する…

脱smarty

60行で作るPHP用テンプレートエンジンを自分用に改良してみた。 テンプレートの更新チェック&書き換え処理(convert_template)を分離して、実行時はincludeするだけにする。 function include_template($_filename, $_context) { ob_start(); extract($_cont…

配列の先頭以外の要素を0に置き換え

php

■初心者向けPHP練習問題リンク+学習ログ配列の先頭以外の要素を0に置き換える場合自分ならこんな感じで作る。 "; $len = count($num); $new_num = array_fill(0, $len - 1, 0); array_unshift($new_num, $num[0]); echo implode($new_num, ",") . "<br />"; ?> 配…

念願のPECLのインストールに成功

□さくらインターネットにPECLをインストールここを参考にImageMagicをインストールしてみたけどダメだった。 いつもphpizeでそんなコマンド知らんと拒否される。 自分でPHPインストールしたせいかも知れないので、元に戻したけどやっぱりダメ。更に探してみ…

SimpleXMLがシリアライズ出来ない

正確にはunserializeすると中身が空っぽになる。 使えない。。。 仕方ないので配列に移してからserializeした。※参考 http://oldblog.xenophy.com/index.php?entry=entry061116-235246 http://studyroom.g.hatena.ne.jp/pha/20071012/p1

OpenIDを試してみる

mixiが対応して一気に広がりそうな予感がしたので、ライブラリ入れて認証テストしてみた。 ちなみに使ったのはここのライブラリ。 http://www.openidenabled.com/php-openid/ライブラリそのままで、入口部分のPHPを変えるだけで、 Yahooはうまく出来たんだけ…

敗北

php

PHPで50音リストをループで回してさっくりやろうとしたけど無理だった。。。 bin2hexやらhexdecやらpackやらを駆使したけど上手くいかないな〜 アルファベットは加算するだけでリスト作れるのにね、、、

どっちがCool?

http://neta.ywcafe.net/000870.htmlmod_rewrite使わずにシンプルに出来るのは良いと思うけど、必ず1階層入るのはどうなんだろう。 それだったら潔く全部受けるようにrewriteしても良いような、、、 RewriteEngine on RewriteRule ^(.+)$ ctrler.php?args=$1…

updateメソッドでフィールドが更新されない

ユニークに設定したフィールドは変更されないみたい。 ユニークなんだから変更するなよってことなのだろうか。 インデックスに変更したら無事更新された。 お上の意向に沿うとしょっぱい設計になってしまうのは俺の頭がよろしくないからなんだろう。

PHPのインターフェース活用

php

http://d.hatena.ne.jp/anatoo/20080517/1211029059 PHPにインターフェースがあるのは知ってたけど、こういう活用法があったのですね。 てっきりインターフェースで宣言したメソッドの実装を強制するためだけかと思ってた。 てかそれ以前にタイプヒンティン…

ハテナはダメっぽい

XMLファイルをPHPのSimpleXMLで読み込ませたら何故かパースエラー発生。 エラーメッセージをよく読んだらタグの値にハテナがあってエラーになったみたい。 タグ以外にハテナを使う時もCDATAが必要なのか。。。 おかげでXMLの中身が取得出来ずに空メールを大…

どこかで聞いたことのある話

http://www.rubyist.net/~matz/20080126.htmlPHPの立ち位置って、なんかVB6に似てる気がする。 今PHPを仕事で使ってるんで、まつもとさんの指摘はごもっとも。かな。まぁ別に酷いプログラマの手にかかればCだろうがJAVAだろうがRubyだろうが斜め上にぶっとん…

楽天APIで取得したXMLがSimpleXMLで取得出来ない件

どうもタグの中にコロンが入ってるからダメっぽい。http://oshiete1.goo.ne.jp/qa3298767.html file_get_contentsで一度結果を取得してからコロンを消去。 結果をsimplexml_load_stringで取得すると成功。 てかタグにコロン入れるとか嫌がらせですか? 追記…

パーミッション変更が出来ない?!

exec関数でchmodコマンド実行するも反応なし。 システム関数chmodでやると成功。

ファイルアップロード

QuickFormでファイルアップロードを行う。 パーミッションが600で問題なし? $form->addElement('hidden', 'path', 'c:\img'); //生成したエレメントの参照を受け取る $upload =& $form->addElement('file', 'upload_image'); $form->addRule('upload_image'…

連想配列のキーと値をループで取得

while(list($key, $val) = each($ary)){} foreach($ary as $key => $val){}foreachの方が見やすいかな。

連想配列の追加

php

$ary = array(); $ary['key'] = 'val';で直接キーをセットできる 知らんかった・・・