Monthly Archives: 2月 2008 - Page 2

CURLあれこれ

ちょっとCurlを使って作りたいものがあったので、色々とメモです。

RSSフィード生成ライブラリ Feedcreator

ウノウラボ Unoh Labs: Feedcreatorのご紹介
PHPのRSSフィード生成ライブラリ Feedcreator。自前で作るより楽そうだということで、RSS作成時の候補に。メモ。

PHP 5.2.5のConfigureでunknownだったオプション

php 5.2.5をインストールしてたら、configureでマッチしないオプションが。

Notice: Following unknown configure options were used:

–enable-mbstr-enc-trans
–enable-versioning
–enable-trans-sid
–with-soap=yes

というメモ。

soapは –enable-soap
versionは –version

ですね。

PHP File download with speed limit

PHP File download with speed limit

PHP snippetsを眺めていたら、速度制限付きのダウンロードを実現するものが。

[php]
$file = fopen($local_file, “r”);
while(!feof($file)) {

// send the current file part to the browser
print fread($file, round($download_rate * 1024));

// flush the content to the browser
flush();

// sleep one second
sleep(1);
}
[/php]

制限分を読み込んで、出して、待つ、という形なんですね。なるほどーと思った例でした。

MySQL (InnoDB) における行のサイズと速度の関係について – id:kazuhookuのメモ置き場

MySQL (InnoDB) における行のサイズと速度の関係について – id:kazuhookuのメモ置き場

集約演算を行うケースでは、行のサイズを小さく保つことはとても重要。アクセス頻度が低いコラムは別テーブルに追い出すとかしたほうがいいくらい。

一方、集約演算を行わないケース (単一行の insert, update 等を含む) の場合は、(クライアントとの通信のための) システムコールがオーバーヘッドになるので、小さなテーブルにたくさんアクセスをするよりも、長い行を持つテーブルに1回アクセスするほうが良い。

PHPとはあまり関係ありませんが、ふむふむ。

innoDBでカラムサイズが768バイトを超えると16KB単位になる

id:kazuhookuのメモ置き場

カラムサイズが768バイトを超えると16KB単位になるってのは重要。

それは重要ですね。勉強になります。

PHP Crawler

MOONGIFT: » PHP Crawler:オープンソースを毎日紹介

PHP Crawlerで自サイトの検索機能を作ってしまおうという話。Crawlerの使い方としては良い使い方ですよね。

新しいプログラミング言語を学ぶときにやる5つの練習

So-net blog:港区赤坂四畳半社長:新しいプログラミング言語を学ぶときにやる5つの練習..

Hello Worldと表示する
「エラトステネスのふるい」を実装する
Quick sortを実装する
CSVファイルを読み込んで整形する
簡単なHTTPサーバを実装してみる

とのことで、確かにいい練習になりそうです。簡単なHTTPサーバというのはPHPでも作ったことがありませんが。。いや、あるかな? Socketの練習でやった気がするが覚えてないぐらいのレベル(^_^;)

簡単なところだと、数当てゲームや九九表を作ったりします。これは昔BASICでよくやったんですよね。

PHP FUSE

チュートリアル – GREE Labs

PHPでFUSEをというなんだかすごいもの。

[php]
class Sample2Fuse extends Fuse {
public function getdir($path, &$retval) {
if ($path != "/") {
return -FUSE_ENOENT;
}
$retval["."] = array('type' => FUSE_DT_DIR);
$retval[".."] = array(‘type’ => FUSE_DT_DIR);
$retval["test.txt"] = array(‘type’ => FUSE_DT_REG);
return 0;
}

public function getattr($path, &$st) {
$st['dev'] = 0;
$st['ino'] = 0;
$st['mode'] = 0;
$st['nlink'] = 0;
$st['uid'] = 0;
$st['gid'] = 0;
$st['rdev'] = 0;
$st['size'] = 0;
$st['atime'] = 0;
$st['mtime'] = 0;
$st['ctime'] = 0;
$st['blksize'] = 0;
$st['blocks'] = 0;

if ($path == “/”) {
$st['mode'] = FUSE_S_IFDIR | 0775;
$st['nlink'] = 3;
$st['size'] = 0;
} else if ($path == “/test.txt”) {
$st['mode'] = FUSE_S_IFREG | 0664;
$st['nlink'] = 1;
$st['size'] = 12;
}

return 0;
}
}

$fuse = new Sample2Fuse();
$fuse->mount(“/path/to/mnt”, “allow_other”);
?>
[/php]

上記スクリプトはlsコマンドのための、getdiやgetattrを実装しています。

PHP の設定は PHP で書く

PHP の設定って PHP で書いた方がよくない? – あーありがち (2008-01-24)

php.iniや.htaccessで設定するのではなく、phpで設定を書こう!というお話。仰る通りだと思います。
特にフレームワークとかだと起動ファイルを必ず経由していくので、(CLIはアレですが)PHPで設定を書いておいても特に障壁とはならないのではないでしょうか。
上で、CLIはアレとは書いているものの、私は起動ファイル経由でもCLIでもスクリプトの最初で設定ファイルを読み込ませ、どちらでも同じ設定が共有できるようにしています。