PHP

画像のフォーマットを判別する

PHP

OS 毎のinclude path のセパレーターについて

PHP

PHP の環境変数で使う include_path のセパレーターは、OS 毎に異なる。 例えば、Linux などでは「:」だが、Windows では「;」になる。 そのため、PHP の定数 PATH_SEPARATOR を使うことで、OS に依存することなく設定ができるようになる。 set_include_path…

FuelPHP で PHPUnit が思うように動作しない [追記あり]

Windows 上で FuelPHP を使って PHPUnit を動作させると、次のようなエラーが発生する。 >php oil test Tests Running...This may take a few moments. 'fuel' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識さ…

文字列の一部を取得する mb_substr の動作について

PHP

全角半角が混在する文字列を操作する場合の実行結果を確認する。 文字列の文字コードは UTF-8 とする。 文字コードを指定しない場合: %s</p>', $after); $after = mb_substr($string, 0, 5, 'UTF-8'); printf('<p>文字コードを指定した場合: %s</p>', $after); ?> 実行…

PHP のタイムゾーンを修正する

FreeBSD で PHP-FPM を設定して稼働確認を取ったら、下記のようなエラーが出た。 Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set(…

PDO で SELECT の結果数を取得する

PHP

SELECT 文で取得した結果の数が取れなかったので調べてみたら、次のような注意書きがあった。 PDOStatement::rowCount() は 相当する PDOStatement オブジェクトによって実行された 直近の DELETE, INSERT, UPDATE 文によって作用した行数を返します。 関連…

Ports の古いパッケージが更新できなくなった

どうも Ports に登録されている PHP が 5.2 系から 5.3 系に変更されたのをきっかけにして、PHP のモジュールの更新ができなくなった。 修正に参考にしたサイト FreeBSD - portupgradeの導入・利用

MacPorts から phpPgAdmin をインストールする

phpPgAdmin をインストールする % sudo port install phppgadmin ブラウザから phpPgAdmin へアクセスできるようにする phpPgAdmin がインストールされたパスを Apache のドキュメントルート下にシンボリックリンクを張る。 /Apache/Document/root/ は実機の…

HTTP_Request2 サンプルコード

setConfig(array( 'follow_red…

PHP で画像を読み込んで、ブラウザに表示させる

PHP

PHP でサーバー内の画像を読み込んで、画像データをブラウザに出力して画像を表示させる。 サーバー内に保存された画像データをファイルから読み込む場合 上記のファイルが、URL で http://localhost/image.php にあるとした場合、PHP ファイルに…

Gentoo に PHP5 をインストールする

PHP5 のインストールの設定を調べる # emerge -pv php These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-libs/libmcrypt-2.5.8-r1 [ebuild N ] app-admin/php-toolkit-1.0.1 [ebuild N ] dev-lan…

FreeBSD に PHP の pecl-APC をインストールする

# whereis pecl-APC pecl-APC: /usr/ports/www/pecl-APC # cd /usr/ports/www/pecl-APC # make fetch-recursive # make install clean ************************************************************************ You may edit /usr/local/etc/php.ini to c…

FreeBSD に memcached と PHP で利用するためのエクステンションをインストールする

memcached をインストールする # whereis memcached memcached: /usr/ports/databases/memcached # cd /usr/ports/databases/memcached/ # make fetch-recursive # make install clean PHP のエクステンション、pecl-memcache をインストールする # whereis …

PHP をインストールした後の注意点

httpd.conf の設定 httpd.conf に PHP の設定がない場合は下記のように設定する。 % sudo vi /usr/local/etc/apache22/httpd.conf # enable PHP 5.x <IfModule mod_php5.c> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </IfModule> % sudo /usr/loca…

PHP の Extension をインストールする

% whereis php5-extensions /usr/ports/lang/php5-extensions % cd /usr/ports/lang/php5-extensions % sudo make config-recursive % make install clean make config-recursive でインストールする Extension を選択する。 php5-extensionsの依存関係で、p…

Kohana 2.2 の Validation で callbacks を追加する注意点

callbacks に追加するユーザー関数がクラスメソッドの場合、アクセス修飾子は public にする必要がある。 よく考えれば、その通りなのだが…。 アクセス修飾子を private や protected にしているとエラーが発生する

Kohana 2.2 の Validation クラスの使い方

基本的な使い方。 '090-0300-0000', 'url' => 'http://www.goog…

Kohana 2.1 から 2.2 は大幅な変更が加えられていた

Kohana のドキュメントと動作の振る舞いが異なることに気がつき、2.1 と 2.2 のソースを比較してみた。 結果、大幅な変更が加えられていたことがわかった。 2.1 から 2.2 への変更点 2.1 to 2.2 Upgrading 特に Validation ライブラリの変更点が大きく、現在…

Kohana で POST メソッドを利用する。

http://localhost/kohana/ を Kohana のルートとする POST データを投げる URL は http://localhost/kohana/index.php/post/recieve/ とする。コントローラー名は「post」、メソッド名は「recieve」となる。 post.html <form method="post" action="/kohana/index.php/post/recieve/"> <label for="mail">メールアドレス<br /> <input id="mail" type="text" name="mail"></label></form>

Kohana をインストールして、よく忘れる設定

application/cache と application/logs ディレクトリの書き込み権限を修正しないとエラーが発生する。 % cd KOHANA_HOME/application % ls -l total 0 drwxr-xr-x@ 11 satounaotaka admin 374 7 22 19:18 . drwxr-xr-x 5 satounaotaka admin 272 7 22 19:20…

Kohana でデータベースに接続する設定をする

Kohana のドキュメントには、 To configure the database there should be a file database.php in your application/config directory. If it isn't there you should copy it from the system/config directory. データベースの接続を設定するには、applic…

ルートディレクトリにアクセスした場合のデフォルトのコントローラーを設定する。

例えば、Kohana を DocumentRoot/kohana に設置したとする。そして、Kohana にアクセスする URL を http://www.example.com/kohana/ とする。 この URL にアクセスした場合のデフォルトのコントローラーを設定する方法を記しておく。 デフォルトのコントロー…

URL から index.php を除く

すっかり忘れていたので、備忘録として残す。 RewriteEngine on RewriteBase /myapplication/ RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] .htaccess ファイルを作成し、Kohana のトップディレクトリに配置する…

View を実装する

参考にしたドキュメント Kohana View Kohana Controllers CodeIgniter View(英語が苦手な人向け) CodeIgniter Controller(英語が苦手な人向け) hello クラス用の view を作成する application/views/hello.php として保存する。 <h1></h1> <p>こんにちは! さん。</p> hello …

Kohana で Hello, World!

CodeIgniter とは異なり、Controller の命名規約が異なる。 CodeIgniter はコントローラー名がクラス名になるが、Kohana の場合は Controller名 + _Conroller になる。 を application/controllers に hello.php として保存する。 そして、http://localhost…

Kohana の .htaccess について

CodeIgniter の .htaccess の設定と同様に Kohana でも行なう。 これを読んでから、Kohana の設定(Removing index.php From URLs)を読めば、英語がよくわからなくても理解できる。 Kohana のチュートリアルを参考にして、への直接アクセスを禁止することもで…

Kohana の application ディクレクトリと system ディレクトリ を Apache の DocumentRoot から外す

この作業を行うのは、セキュリティ上の理由から実施する。 Apache の DocumentRoot に Kohana の application や system ディレクトリがあるということは、不特定多数の人がそれらのディレクトリにアクセスできることを表す。このことは、例えばデータベース…

Kohana と CodeIgniter の違い

Notes on Choosing a PHP Framework: A Quick Comparison of CodeIgniter and Kohana | thislab.com - Web development and design by Fred Wu.の要約。 誤訳あり。 Kohana と CodeIgniter の簡単な比較 PHP のフレームワークで、CakePHP を使ってみた。しか…

Kohana ことはじめ 2

Make the application/logs directory writeable. Chmod to 666.application/logs ディレクトリを書き込み可能にするために、パーミッションを 666 に設定する。 Make the application/cache directory writeable if you use the cache library. Chmod to 66…

Kohana ことはじめ 1

CodeIgniter の設定ファイル application/config/config.php application/config/database.php Kohana の設定ファイル application/config/config.php system/config/database.php