file_get_contentsの引数は1つだけではない

2011/02/21 | PHPの基本

今まで普通にfile_get_contents($path)として使っていたけど、いろいろな使い方ができることを初めて知った。もちろんfile_get_contents($url)でHTTP経由でファイルを取得できることは知っていたけれど、相手がBASIC認証を要求するような場合でも対応できるなんて・・・知らなかった。

$username='username';
$password='password';
$option=array(
  "http"=>array(
    "method"=>"GET",
    "header"=>"Authorization: Basic "
         . base64_encode($username.":".$password)
  )
);
$context=stream_context_create($option);
$result=file_get_contents($url,false,$context);

この例も踏まえて、全部で5つの引数が取れるなんて。ちょっと驚きました。

JavaScriptにはsprintfな関数はないけれど

2011/02/16 | JavaScript/Ajax

JavaScriptではPHPのsprintfみたいに文字列をフォーマットするような関数はあまり見かけない。

しかし貴重なメソッドを見つけた。小数点以下をn桁に揃えるためのメソッドだ。Numberクラスのメソッドとして定義されている。

number.toFixed(n)

数値numberを小数点以下n桁で表示する。nよりも桁数が小さい場合は0を付加してくれる。nよりも桁が大きい場合は四捨五入してくれる。戻り値は「文字列」だ。

これは便利。

imagepngとimagejpeg

2011/02/09 | PHPの基本

画像を出力する関数imagepngとimagejpegの第3引数について。両者は意味が全く異なる。

imagepngの場合、第3引数は圧縮レベルを意味し、値は0(圧縮なし)から9(最高レベルの圧縮)を指定する。

imagejpegの場合、第3引数は品質(こちらも圧縮のことかなぁ)を意味し、値は0(最低品質)から100(最高品質)を指定する。

つまり意味が全く異なる。意味が違うのだからマニュアルの表記も変えて欲しい。マニュアルではどちらも「quality」との表記になっている。引数の取り方がほぼ同じなのに、受け付ける値の範囲がそもそも違うし、かたや値が小さいほうが品質が良くて、かたや値が大きいほうが品質が良い、なんていうのは使う側にとっては混乱をきたすだけ。

JavaScriptで配列をシャッフルする際に・・・

2011/02/07 | JavaScript/Ajax

この前、JavaScriptで配列をシャッフルする方法について書いた。その際はprototypeプロパティを使い、配列にメソッドを追加(JavaScriptでこういう言い回しが正しいのかどうか分からないけれど)する方法を採用した。しかし別のプログラムとの兼ね合いで、どうしてもprototypeプロパティから追加してはいけない、ということになった(諸般の事情で・・・)。

で、調べたら、同じアルゴリズムで書かれた関数があった。

prototype型

Array.prototype.shuffle = function() {
var i = this.length;
while(i){
var j = Math.floor(Math.random()*i);
var t = this[–i];
this[i] = this[j];
this[j] = t;
}
return this;
}

関数型

function shuffle(a){
var i = a.length;
while(i){
var j = Math.floor(Math.random()*i);
var t = a[–i];
a[i] = a[j];
a[j] = t;
}
return a;
}

PostGISでラインの始点終点を取得する関数

2011/02/06 | PostgreSQL

ST_StartPoint(geometry)

ST_EndPoint(geometry)

関数事典が欲しい。存在するけど日本語じゃない。っていうか日本語のマニュアルはあるけど、常人が理解できる言葉では書かれていない。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net