53件中 21-25件目     [ 1 2 3 4 5 6 7 8 9 10 ... ]

Webアプリケーションでファイルを使ってデータ管理をする場合、ファイルに同時に複数のアクセスが起こりうるため、ファイルをロックして同時にアクセスできないようにする必要がある。PHPのファイルロックに関して書いているページは多いのだが、正しくロックできているかの確認が難しいためか、マニュアルの説明が足りてないのか、間違ったことを書いてるサイトも多い。

そこでPHPでのファイルロックに関してまとめてみることにした。


タグ [ PHP , Tips ]
修正:
  • 追記モードで開いてからftruncate関数で内容をリセットする方法について (2008/08/21 09:39:31)
  • $this->sleeptimeのはずが、$sleeptimeになっていたのを修正 (2008/09/27 12:50:08)

ユーザのブラウザの種類を判別する情報として、以下のようなユーザエージェント名が取得できるが、これを見ても知らなければ詳しい情報がわからない。

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Sleipnir/2.6.1
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Opera/9.50 (X11; Linux i686; U; en)
Hatena RSS/0.3 (http://r.hatena.ne.jp; 1 subscribers)

PHPにはこういったユーザエージェント名から詳しい情報を取得するget_browser関数がある。 しかし、これは標準のPHPの設定では使うことができずiniファイルの設定が必要になる。 そこで、get_browser関数の使い方とiniファイルが書きかえれない場合の対処方法を紹介する。


PHPではPHP_INT_SIZEやPHP_INT_MAXという定数が定義されており、int型最大値を求めることは簡単だが、float型の最大値を定義するような定数は見つからない。 INF(無限)がそれに当たるといえばそうなのだが、INFを除いた値での最大値を知りたい。

マニュアルを見てみると以下のように書いてある。
float の大きさはプラットフォーム依存です。ただし、通常はおよそ 10 進数で 14 桁の精度があり、最大値は ~1.8e308 (これは 64ビット IEEE フォーマットです) となります。

しかし、1.8e308はおおよその値なので同じ64bitのIEEEフォーマットでも以下のようにするとINFが出力されてしまう。

<?php
$test = 1.8e308;
echo $test;
?>
INF

そこでもう少し正確な値を求めてみることにする。


今までprototype.jsThe Yahoo! UI LibraryしかJavaScriptのライブラリを使ったことがなかったので、何か別のものを使ってみようと考えた。 その候補として、最近[Z]ZAPAブロ~グ2.0とかホームページを作る人のネタ帳で話題になっているjQueryにするか、『サーバサイドAjax?』で触れたxajaxにするかで迷ったが、サーバサイドAjaxと言われるものを触ってみたかったので先にxajaxを使ってみることにした。


JavaScriptとPHPではそれぞれURLエンコード、デコードする関数を持っているが、それぞれ微妙に動作が違う。 URLエンコードする関数は、PHPには、rawurlencode関数urlencode関数の2つがあり、JavaScriptには、escape関数、encodeURI関数、encodeURIComponent関数の3つがある。

それぞれのエンコード関数とデコード関数の組み合わせでどうなるのかを調べてみた。


53件中 21-25件目     [ 1 2 3 4 5 6 7 8 9 10 ... ]