ただのメモ帳

記録を残していきます

Archive for the ‘php’ Category

preg_replaceによる置換で気をつけること

preg_replaceを使い、日本語の置換をするとき、マッチするパターンを持っているのに、スルーしてしまう箇所があるので調べてみた。
例えば、パターンにマッチする箇所を持つデータが100個あったとすると、20個ぐらいが置換できない。
完全に処理されないなら分かりやすいんだけど、半端な割合で処理がされないので、何が悪いのか迷ってしまった。

調べてみると、日本語とpreg_replaceの組み合わせだから起こる問題だとわかった。
パターン部分をUTF-8でエンコードして処理するとあっさり解決。
以下のように/の後にuを付けてあげる。

$x=preg_replace(‘/パターン/u’,'置換後’,$str);

Written by ant

9月 18th, 2010 at 7:33 am

Posted in php

PHPのエラー表示のメモ

プログラムが長くなってくると、ときどき出くわすのが

syntax error, unexpected $end in ファイル名 on ライン番号

unexpected $endというくらいだから、カッコの数がおかしいとか、そういう類のエラーというのは予想がつくんだけど
詳しく調べてみると、閉じカッコが足りない場合と、最初のカッコが足りない場合でエラー表示が違うとわかった。

閉じカッコが足りない場合だと

syntax error, unexpected $end in ファイル名 on ライン番号

逆に、最初のカッコが足りない、つまり閉じカッコの多すぎると

syntax error, unexpected ‘}’ in ファイル名 on ライン番号

これ知らなかったので、へぇ~と感心した。
このエラー表示で閉じカッコが多いのか少ないのか判断できるので、取り敢えず、カッコと足したり引いたりして、エラーを解決するのが早くなる。

エラー表示なんて、適当にしか見てなかったので、これからはちゃんと調べるようにしよう。

Written by ant

9月 16th, 2010 at 5:23 am

Posted in php

正規表現のメモ

例えば、ニッサン車の名前と、車両価格が入ったデータベースを作ったとする。
車名には「ニッサン・マーチ」、「ティーダ」、「ニッサンGT-R」のような物が入っていたとする。
純粋に車名だけでアイウエオ順に並べたいときは、ニッサン・マーチの「ニッサン・」やニッサンGT-Rの「ニッサン」いう文字が邪魔になる。この邪魔な部分を削除して並び替える仕組みが最初わからなかった。
車名と価格をセットで並び替えないと意味がないので、そこで時間を費やした。

もっといい方法があるだろうけど、取り敢えず以下の方法でできたのでメモ(プログラムはPHPを使用)。

まずデータベースから車名と価格を取り出し変数に入れる。
$carname=”車名”;
$price=”価格”;

置換して「ニッサン・」と「ニッサン」の文字を取り除く
$maker=”ニッサン”;
$name = ereg_replace(“$maker(・)?”,”", $carname);

連想配列に入れる(キーで並び替えをするために、キーに車名を入れる)
$namesort[$name]=$price;

以上を繰り返し処理。

次に、キーで並び替えをする
ksort($namesort);

繰り返し処理をして表示
foreach($namesort as $key=>$value){
print $key.$value;
}

これでメーカー名を省いた純粋な車名による並び替えができた。

Written by ant

8月 17th, 2010 at 1:44 am

Posted in php,サイト

プログラムの勉強に役立つサイト

プログラムの初心者向けのサイトを最近見るようになりました。

http://ajax.pgtop.net/

自分が見た中では、ここが頭ひとつ飛び抜けてわかりやすかったです。
PHP,MySQL,JavaScrip,Java,Ajaxが揃っているので、一通り初心者が興味をもつ分野は網羅されています。
全くの0からだとわかりにくいと思いますが、初心者向けの本を1冊済ませた後くらいに読むと面白いように先に進めると思います。
つまずきそうなポイントで必ず丁寧なフォローが入っているから、壁にぶつかりにくいです。
おかげで、1日でJavaScriptとAjaxが使えるようになりました。
ここまでのプログラム学習時間は合計50時間ぐらいだと思います。PHP,MySQL,JavaScrip,XML,Ajaxが自分が必要な分はなんとか使えるようになりました。周辺知識が揃ってきたので、今が一番学習曲線が伸びる時期な気がします。

Written by ant

3月 3rd, 2010 at 12:08 am

Posted in php,勉強

PHPメモ

この前、何時間も続けてやっても効率悪いはずと書いていたんですが、夢中になってしまい、3日間で10時間以上いじりました。おかげでだいぶん使いこなせるようになりました。PHPでテンプレートを作り、静的なHTMLファイルを作ることができるようになったので、自分的には翼が生えた感じです。これでWORDPRESSを使わずにいろいろできそうです。プログラマになることが目的ではないので、PHPにはのめり込みすぎないように気をつけようと思います。気分転換に、週末の、金、土、日の3日間で携帯サイトの作り方を一通り勉強する予定です。

Written by ant

2月 25th, 2010 at 11:30 pm

Posted in php