->
携帯対応 COOKIEを使わないSESSIONの使い方。 – 個人事業主のつぶやき
Cakeを使う時の為のメモ。やはり携帯対応は大変ですね。Androidが福音となるのかどうか。
ではさっそくダウンロード。
Fedora7に入れました。
[code]
$ wget "http://xcache.lighttpd.net/pub/Releases/1.2.1/xcache-1.2.1.tar.gz"
$ tar zxvf xcache-1.2.1.tar.gz
$ cd xcache-1.2.1
$ phpize
$ ./configure --enable-xcache --enable-xcache-coverager --with-php-config=/usr/bin/php-config
$ make
$ make test
# make install
[/code]
正直、coverageはxdebugでやるのでいらないかな、とも思いつつ。
Installing shared extensions: /usr/lib/php/modules/
というわけで無事インストールされました。早速組み込みましょう。例によってphp.iniを編集します。
[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so
[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = ""
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 64M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = "/tmp/xcachecov"
解凍したxcacheディレクトリにあるxcache.iniとZAPAさんのを参考に設定しました。
[code]
$ php -i
[/code]
でxcacheが組み込まれていることを確認。早速(既に実行時間を計測してあった)CLIスクリプトをxcache組み込みで走らせませす!
何も変わらず!ズコー!
念のためApacheを再起動したりしてみましたが、何も変わりませんね。
xcacheのadmin画面でCacheの確認が出来たりしますので、その設定を行いましょう。解凍したxcacheディレクトリに/adminというフォルダがありますでの、それをWEBディレクトリにコピーするなりし、ブラウザから先ほどのphp.iniで設定したadmin.userとadmin.passを用いてアクセスします。
#admin.passはmd5で符号化してください。
#php -r “echo md5(“your-password”);”
#など。
で、admin画面で確認してもCLIは全くキャッシュされていませんね。。
mod_phpとかphp-cgiしか早くならない?のですかね。
もちろんApache上でWEBサイトとしてアクセスした場合はきちんと早くなってます。Zend Frameworkを使った簡単なサイトで計測して、スクリプトの実行時間が半分になりました。すごいです。それだけで感動。
ZAPAさんの XCacheのインストールメモ2 を見て、XCacheに興味を持ったけども、未だにアクセラレータ系のものを入れたことのない私です。なんだか昔の不安定だーっていうイメージが拭えないからかもしれません。入れたことないのにイメージ先行。しかし、XCache2は非常に安定しているみたいですし、これは一丁入れてみるしか!
ところでこの手のものはCLIでも早くなるんですかね。なるんですよね。たぶん。。
PHPの種 ブログ » XCacheをインストールしてみました。に追記しました。
PHPのテクメモ | どこでブラウザへの出力をしてしまったのかチェック
header関数を使おうと思ったら「headers already sent」なんていわれることがあるわけだが、この関数を使うと「もう何か出力したかどうか」をチェックすることができる。しかしこの関数のもっとすごいところは・・・どのファイルの何行目で出力があったのか教えてくれる点だ。
headerが出力されているかどうかのチェックをするだけの関数かと思ってましたが、そんな便利機能があったとは。いつか役立つ時がくるメモ。
携帯版コンテンツ向けAdSenseがスタートしたようです。
サーバサイドスクリプトが必要なのですね。
以下のいずれかのスクリプトを使用していること
・PHP v4.3.0以降
・CGI/Perl v5.8以降
・JSP v1.2以降
・ASP v3.0以降
携帯版Google AdSenseのPHPコードがきもいので修正してみた – ふわふわな毎日なども参考に使ってみたいと思います。
ユーザー管理に特化したPHPのライブラリ『phpUserClass』 | IDEA*IDEAで紹介されています。
ソース、ドキュメントを見ましたが、insertUserやActivateなどもきちんとあり使いやすそうです。
IDEA*IDEAさんで紹介されてました、HTMLの要素をSQLのように取り出せるPHPのライブラリ、htmlSQL。これは素敵なスクレイピングライブラリです。ちょっと使ってみましたが、なかなか面白く、使いやすいものになっていると思います。
SQLのようにというのは、sampleを紐解くと、
SELECT * FROM h1
SELECT * FROM a
SELECT * FROM td
SELECT href as url, text FROM a
SELECT * FROM a WHERE preg_match(“/^http:\/\//”, $href)
SELECT * FROM a WHERE preg_match(“/^\/snippets/i”, $href) and preg_match(“/^array_/i”, $text)
SELECT * FROM *
SELECT id, name, password FROM user WHERE $status == “active”
SELECT * FROM * WHERE $id == “header”
SELECT * FROM a WHERE substr($href,0,1) != “/”
SELECT * FROM * WHERE $class == “nav_item”
SELECT * FROM a WHERE ($href == “foo.htm” and $title == “foo”) or ($title == “bar”)
と、このようにSELECTできます。
PHPでは、
[php]
include_once("../snoopy.class.php");
include_once("../htmlsql.class.php");
$wsql = new htmlsql();
// connect to a URL
if (!$wsql->connect(‘url’, ‘http://www.php-seed.net/blog/’)){
echo $wsql->error;
exit;
}
if (!$wsql->query(‘SELECT text FROM title’)){
echo $wsql->error;
exit;
}
foreach($wsql->fetch_array() as $row){
print_r($row);
}
?>
[/php]
このような感じで。
PHPのスクレイピングが盛り上がりますね。
HTML取得にSnoopyを使っているようです。
最近のコメント