CodeIgniterの最近のブログ記事

CodeIgniterは可読性アップのため、ショートタグ使ったりするんですね

引き継いだソースがそうだったので
config.phpの
$config['rewrite_short_tags'] = FALSE;
の部分をTRUEに変更して走らせたところ

libraries/Loader.php(706) : eval()'d code 44
こんなエラーがつらつらと

該当するLoader.phpを見てもその行とか関係ないし

CodeIgniterのユーザガイドを参照してところ

この機能を利用する場合、ビューファイルでPHPエラーが起こったとき、エラーメッセージと行番号が正しく表示されないのに注意してください。すべてのエラーは、eval() を実行したときのエラーとして表示されます。

との記述が

ん~仕様なんですね、ショートタグをCIで有効にすると使うとエラー表示おかしくなるって

これだと困るので、さっきのconfig.phpは元に戻して
このプロジェクトのみ.htaccessにて
<IfModule mod_php5.c>
php_flag short_open_tag on
</IfModule>
と設定して逃げることとしました。

CodeIgniterではモデルを利用するとき自動では接続してくれない
config/database.php内でデータベース情報を設定し
利用時には
$this->load->model('Model_name', '', TRUE);
の形で呼び出すことで(最後TRUE部分)
DBへの接続が行われる

またこの部分に

$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['active_r'] = TRUE;

$this->load->model('Model_name', '', $config);
とすることで都度接続を切り替えることもできる
参考:
http://ci-user-guide-ja.nought-point-999.net/general/models.html
http://kashioka.net/index.php/test/hoge/日本語/のようなURIを使おうとすると
The URI you submitted has disallowed characters.
というエラーが発生した。
パラメタを扱うときに行っている正規化表現に含まれていないため発生してしますようだ
/config/config.php内の
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';
の部分を
$config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-';
と変更し
config.phpファイルに感じを利用したために
nkfにて文字コードをUTF8に変換したところエラーが解消し
利用することが可能となったがURIの仕組みによってまだエラーが出るので
libraries/URI.php
のpregをかけている部分
if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str))

if ( ! preg_match("/|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i/u", $str))
としてUTFでマッチさせてみたらエラーには解消された
結構強引に修正してしまったけど
正しい方法はどうなんでしょうか?(汗