PHPの最近のブログ記事

PHPスクリプトのフルパスを、Webのディレクトリ名とPHPファイル名に分解するPHPスクリプト(ただし、フルパス内に最低1個は「/」が含まれていることが必要)

<?php
    $str = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
    $dir = substr( $str, 0, mb_strrpos( $str, '/' ) ); // Webのディレクトリ名を取得
    $file = substr( $str, ( mb_strrpos( $str, '/' ) + 1 ) ); // PHPファイル名を取得
?>

○用途:PHPスクリプトを別サーバや別ディレクトリにポーティングする場合に、いちいちPHPスクリプト内のホスト名やディレクトリ名を書き換えなくてもよいプログラミングができる

$_SERVER["SCRIPT_NAME"] などでは /sub/test.php や /main.php のように、最低でも一つ「/」が付いてしまう。

含まれる「/」をすべて除去し、ファイル名だけ取得する方法:
substr( strrchr( $_SERVER["SCRIPT_NAME"], "/" ), 1 )

PHP使用時に作成されるサーバ上のセッションファイルを自動的に削除する方法(RedHat系LinuxでRPMインストールしたPHPを想定)。

crontab -e で次のコマンドを登録
find /var/lib/php/session -type f -cmin 120 -exec rm -f '{}' ';'

<意味>
/var/lib/php/session ディレクトリ以下の場所で、タイプが「ファイル」で、最低120分以上前に作成されたものが存在したら削除する

以下のような連想配列があるとき、
$status = array(
	'void'		=> array( 'value' =>  0, 'name' => '無効' ),
	'wanted'	=> array( 'value' => 11, 'name' => '募集中' ),
	'closed'	=> array( 'value' => 21, 'name' => '中止' ),
	'cancel'	=> array( 'value' => 99, 'name' => 'キャンセル' )
);

上記の全データを参照するには each() 関数を二重ループさせる。
while ( list( $key, $val ) = each( $tour_status ) ) {
	while ( list( $s1, $s2 ) = each( $val ) ) {
		echo $key . " : " . $s1 . " : " . $s2 . "\n";
	}
}

一回目のループ内の $val 変数は配列を受け取る点に注意。

セッション管理

| コメント(0)

ようやくセッションを本格的に組み込んだプログラミングに着手。
セキュリティを考慮した場合、POSTやGETメソッドでのパラメータ引渡しというのはやはりよろしくない。
オンラインバンク並みのセッション管理を目指してみよう。

PHPで複数のエンコード(euc-jp, UTF-8, Shift_JISなど)を使用する場合、Apacheで仮想ディレクトリを分けているのであれば、仮想ディレクトリごとに .htaccess を用意して、以下のようにPHP変数を定義する。

Php-stats で各ページのタイトルを日本語表示しようとしたところエラーが表示される。
エラーログを見ると「undefined function mb_convert_encoding」とあった。

[PHP]Tips

| コメント(0)

PHPに関するTipsを随時追加する。

約20MBのファイルをフォームからアップロードしてPHPで受け取る処理をさせたところ、error_log に

[client 192.168.1.100] PHP Warning: POST Content-Length of 19888438 bytes exceeds the limit of 8388608 bytes in Unknown on line 0, referer: http://sv.test.jp/upload_index.php

のようなエラーが出ます。

PHP日本語などの各種コードの処理を可能にするための mbstring 関数を使用可能にする方法を記録しておきます。
一からソースコンパイルする方法ではありません!

2009年10月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ウェブページ

Powered by Movable Type 4.25

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のカテゴリはOpenPNEです。

次のカテゴリはSugarCRMです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。