perlの色々な関数や処理の実行時間をBenchmarkモジュールを使って計測・比較してみました。第2弾。
-
カテゴリー
-
メタ情報
-
about this
- 当サイトは全ページリンクフリーです。
- ツール等はこちら
muzin - 「役に立った」「おもしろかった」と思っていただけましたら、お持ちのブログやHPからリンクをしていただけるとモチベーションになります。
Recommend
別サイトに phpBB を設置したのだが、いまいち文字化けしてしまいました。
データベースの文字コードと、phpBB自体の文字コード(UTF-8版とEUC-JP版があるので)をあわせたら上手くいきましたので、個人用にメモ
ローカルのファイルのサイズを取得するときには filesize() 関数を使えば良いのですが、
どうもリモートでのファイルサイズを取得するには filesize() は使えないらしい。
というわけで探してみたところ、次のような方法で外部のファイルのサイズを取得できるようです。
ただし相手のサーバーの設定で Content-Length ヘッダーを返すようになっていないと使えないので注意。
戻り値は byte 単位です。
<?php
# 外部URIのファイルサイズを取得
function getFileSize($uri) {
$headers = get_headers($uri, 1);
if ((!array_key_exists("Content-Length", $headers))) { return false; }
return $headers["Content-Length"];
}
?>
著色にはPHPソースをハイライト表示を使用しました。
perlを使って、外部サイト(別ドメイン)にあるWebページを読み込めないものかと探していたら、素晴らしいページを見つけました。
perl,c,javaなどでsocketを使ったネットワークプログラミングを分かりやすく解説してくださっています。
暗号化やSSLの実装などの話も興味深いです。
RSSのContent-Typeはどうなっているのか、主要なサイト(自分にとって笑)のRSSのヘッダを読み込んで、Content-Typeを調べてみました。
PHPで文字コードを変換するために、mb_stringを実装しました。
php.iniで[mbstring]を
--------------------------------------
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass (SJIS では文字化けすることがある)
mbstring.encoding_translation = On (Off を On に. BBSなどで文字化けするようなら Offに)
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
--------------------------------------さらに、dllの位置指定とコメントアウトも。
----------------------------------
extension_dir = C:\php\extensions\ (デフォルトの ./ をインストール先に合わせて変更)
extension=php_mbstring.dll
output_handler = mb_output_handler
----------------------------------
と変更。
$str = mb_convert_encoding($str, "EUC-JP", "auto");
これで$strをEUC-JPに変換できます。 autoに指定しておけば、変換元の文字コードは自動で判別してくれます。
$str = mb_convert_encoding($str, "EUC-JP", "UTF-8");
こうすれば、UTF-8からEUC-JPへの変換です。文字コードが分かっている場合は、こちらが確実でしょう。