「サイト」カテゴリーアーカイブ

データベースのメモ

今使っているPCにはマイクロソフトofficeが入ってない。

これからも使うことはないと思うんだけど、どうしてもエクセル形式のファイルを開く必要があって困っていたら、普通にエクセルビューアーというソフトがマイクロソフトから無料で配布されていた。

このビューアーを使ってファイルを開いた後に、必要な部分だけグーグルスプレッドシートに貼りつけたら編集もできるようになるので問題解決。

よく見るとスプレッドシートから直接エクセルの中身を開くこともできるみたい。

あと、データの入れ方が不規則で、そのままだとSQLで収納できない時も、いったんスプレードシートに取り込んでからデータを整えてCSV形式で出力してやると簡単に収納できる。

グーグルドキュメントがかなり便利だとわかった。

いろいろ引っかかっていた部分も一気に解決した。

ヒアドキュメント内で展開する変数と展開させたくない変数

基本的にいきあたりばったりで必要なときに必要なことを勉強してるので芋づる式に調べることがどんどん出てくる。

ヒアドキュメント内で変数の挙動が怪しいので、ちゃんと調べてみた。

まず、変数をきっちり認識させるためには変数名をかっこで囲んであげる

${ant}

ただし、これだとヒアドキュメント内で変数が展開されてしまうので、変数のままにしておきたい時は

\${ant}

と、エスケープをしてあげる。

ある文字から改行までを選択する

正規表現の基本的な使い方はだいたいわかったんだけど、改行の扱いでひっかかった。
ある文字からその行の最後までを選択したい場合。

「文末に改行がくる」というのを、直訳?すると上手くいかなかった。
30分くらいいろいろやって

特定の文字[^\n]*

これで上手く行った。
「文末に改行が来る」ではなく、「改行以外を選択する」というように逆で表現するとあっさり解決。
他にもこの逆を使うパターンで解決することは多いように思う。

require_onceを使うときの文字化けを防ぐ

携帯サイトを作っていて、require_once使用時に文字化けしてとらぶったのでメモ。

携帯用のサイトは文字コードをshift-jisで作る必要がある。

shift-jisで作ったページに別ファイルをrequire_onceで呼び出す場合、呼び出すファイルの文字コードがUTF-8だと文字化けしてしまう。

最初は呼び出す前の時点で、ファイルの中ですでにechoで出力していたんだけど、これだと文字化けが治せなかった。

呼び出すファイルの文字コードをUTF-8のまま使うには、require_onceで呼び出した後にechoで出力すると解決。

まず、呼び出すファイル内で出力したいものを変数$rに入れておく

そして呼び出すときに、文字コードを変換してあげる

わかってしまえば簡単なんだけど、結構悩んでしまった。

正規表現のメモ

例えば、ニッサン車の名前と、車両価格が入ったデータベースを作ったとする。
車名には「ニッサン・マーチ」、「ティーダ」、「ニッサン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;
}

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