phpの最近のブログ記事


CakePHPの「.ctp」、ときどきうざったいですよね。
HTMLエディタで開こうとするとエラー出したりw

そういうときには、次の方法を。

class AppController extends Controller {
    public $ext = '.html';

}

これで明日から悩まない!

CakePHPとかMySQLとかいろいろ。

| コメント(0)

最近、業務でCakePHP, MagicWeapon, MySQLを使っているのですが
よく忘れる事とか、ちょっとメモをしておこうかなと。

 

・CakePHPでDBのカラム名を取得する
 $columns = array_keys($this->getColumnTypes())

・CakePHPのControllerでModelを動的にロード
 $this->loadModel('ModelName');

・CakePHPでUpdate
 1. $this->Model->id にアップデートしたいIDをセット(複数keyには対応してない様子
 2. $this->Model->save($updArr) ※$updArrは、$updArr[dbColumn] = 'updateValue' の単純な形式

・MySQLでselect insert
 insert into <newtable> (<columns>) select <columns> from <oldtable> <where>

で。CakePHPでDBカラムの取得と組み合わせると

$columns = implode(',', array_keys($this->getColumnTypes());
$sql = "insert into {$this->useTable}_new ({$columns}) select {$columns} from {$this->useTable} where {$this->primaryKey} = 'value';

みたいな書き方ができる。。と


今まで、memcachedCache_Lite を使ってきたのですが
ネットを徘徊していると、APC サーバー全体のPHP高速化と、ユーザーデータのキャッシュができるという
内容を見つけました。

早速インストール
# pecl install APC
..........
残念ながら、phpize中に失敗してしまいました。
ので、srcbuildを。


PEAR使ってる状態でPHPのバージョンを上げると、PEARから上記エラーが出てくる場合がありますが・・・
これは、PHP5では、newすると参照になるのに、それを =& でさらに参照で受け取ろうとしてエラーが出ている模様。

消す方法はいくつかあります。

Smarty 備忘録

| コメント(4)

count
{$value|@count}

var_dump
{$value|@var_dump}

foreach
{foreach from=$from item="item" key="key" name="name"}
{if $smarty.foreach.name.last}
is Last
{elseiif $smarty.foreach.name.first}
is First
{/if}
{$key} = {$item}
{/foreach}

smartyのタグ({)を変更(SJISの場合必須: SJISの文字コードに { が含まれるため)
$smarty->left_delimiter = '{{';
$smarty->right_delimiter = '}}';

わかりやすくするために、<% %> に変えるのもありかなと。。


PHPでの正規表現です。
pregをつかってるので、perlでも使用可能です。
・・・変数定義とか違ったと思いますけど。

nicovideo,smilevideoと格闘すること2時間...
ついにやりました^^
以下のソースコードはログインセッションを保持するキャッシュサーバーを経由することを前提に作られています
(nicocache_nlなど)

なお、このソースコードを使用した事で被った被害は自己責任でお願いします
たとえば、ニコニコ動画からアカウント停止されたとか。
すべて「自己責任」です。

使い方、意味などわからない人は使わない方が賢明かと・・・。
逆に使える人はどんどんもってってください。

coreになる部分は

$request->addCookie"user_session"$us );



$nicohistory $pcookie[0]["value"]; 
$pck["nicohistory"] = $nicohistory;



の2カ所です。

OpenID対応しています OpenIDについて