Web技術日記
ホームページ制作の小技を紹介します。

トップページ > Web技術日記

htaccessのRewriteCondで特定ディレクトリを除外[] 2014年4月 6日

htaccessがルートにある場合、

RewriteCond %{REQUEST_URI} !/ディレクトリ名/

 
 

mingで画像が赤くなる[php] 2011年7月 5日

久々の更新です。

サーバーサイドでflashを作成するツールmingですが、出来上がったフラッシュ(バージョン4を指定)を携帯でみると赤くなることがあります。

これはflasの特殊仕様によるものなので、jpgパッチを当てれば治ります。

パッチのURLは分からなくなったので、興味のある方はネットで検索してみてください。

 
 

imagemagickでピクセル情報取得[その他] 2009年6月 2日

convert 画像ファイル名 txt:

出力結果

# ImageMagick pixel enumeration: 1,1,65535,RGBA
0,0: (65535,65535,65535,65535) #FFFFFFFFFFFFFFFF
0,1: (65535,65535,65535,65535) #FFFFFFFFFFFFFFFF
・・・

-crop 0x0+10+10などと併用することで、1ピクセルだけの情報取得も可能

 
 

チャンク形式のHTTP1.1応答[その他] 2009年4月 9日

HTTP1.0応答の場合は、問題ないのですが、HTTP1.1応答の場合、ボディ部がチャンク形式というちょっと変わった形式で返ってくるようです。

例えば、ボディ部が
abcdefghijklmnopqrstuvwxyz1234567890
の場合、HTTP1.0だとこれがそのまま返ってきますが、
HTTP1.1だと
1a+改行コード(1aは十進数に直すと26バイト、次のデータの長さ)
abcdefghijklmnopqrstuvwxyz+改行コード
10+改行コード
1234567890+改行コード
0+改行コード(データの終わり)
オプションデータ+改行コード
オプションデータ+改行コード
・・・・
という感じで返ってくるようです。

これを解析する場合のスクリプトは以下のような感じ。

<?
$fp = fsockopen("アドレス", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET HTTP/1.1\r\n";
    $out .= "Accept: */*\r\n";
    $out .= "Accept-Language: ja\r\n";
    $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n";
    $out .= "Host: ホスト名\r\n";
    $out .= "Connection: Keep-Alive\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        $headers=fgets($fp, 4096);
        if(trim($headers)==""){
            break;
        }
    }
    $body="";  
    while (!feof($fp)) {
        $tmp = hexdec(fgets($fp));
        if (!$tmp) break;
        $body=fread($fp, $tmp);
        fgets($fp);
        print $body;
    }
    fclose($fp);
}
?>

 
 

perlとPHPでの環境変数を伴うexecの違い[php] 2008年12月 5日

今日、半日くらい悩んだ出来事です。

とある仕様書を見てPHPでexecを利用して外部コマンドを実行するのですが、仕様書どおりなのになぜかうまくいかない。

環境変数が必要とあったので、$_SERVER['REQUEST_METHOD']や$_SERVER[QUERY_STRING']などにきちんと値が入っているか確認した上で試してみてもうまくいかない。

数時間後、しようがないのでperlに書き直して試した・・・なぜかうまくいく。

どうもperlでは、環境変数が渡されているがPHPだと渡されてないようだ。

そこでやっとこさ辿りついたのが、putenv。

putenv('REQUEST_METHOD='.$_SERVER['REQUEST_METHOD']);
putenv('QUERY_STRING='.$_SERVER['QUERY_STRING']);
した後、execするとやっとこさPHPでもうまくいきました。

ふぅ。

 
 

auで動画などをDLさせるためのタグ[携帯] 2008年11月22日

<object data="ファイル名" type="MIMEタイプ" copyright="no" standby="表示文字">
<param name="disposition" value="au指定のデータ種別" valuetype="data">
<param name="size" value="ファイルサイズ" valuetype="data">
<param name="title" value="ダウンロードされるファイル名" valuetype="data">
</object">