Archives for posts tagged ‘php’

GETパラメータでのデータ受け渡し

ここのところPHPネタばかりになってます。Flashネタも書かないと・・・って更新頻度が酷く下がっているんですけどね。
先日、お仕事でPHPをガリガリ書いていて気づいたことなんですけど、GETパラメータでの受け渡しをしてたんです。
 
普段はほとんどPOSTでやっているんですけど、ちょっとその時はGETの方が都合がよかったんです。
 
んでまあ、やってたらどうにも日本語が化ける。
 
 
「何故に?エンコードは合わせてるし、そんな複雑な事はしてないぞ?」
 
 
いろいろ模索していて、結局Google先生に頼って検索。。。
 
すると、IEでは「URLの受け渡しはUTF-8で通信する」というオプションがあるじゃないですか?!
 
しかもデフォルトの設定っぽい。
 
 
知らなかった。。。
 
 
 
よく今までこのケースに当たらなかったなあと思いつつGET送信をやめて別の方法で解決。
 
無知なだけだったのかなあ。。。
 
 
 
気をつけよ。

PHPでCSVを用いた場合のあいまい検索

もう一つPHPでつまづいたのでメモ。
1つ前のエントリーで書いた「2次元配列のソート」と同時につまったのが、「CSVデータの中身をあいまい検索」。
SQLならそもそもLikeコマンドがあるからいいんですけど、CSVデータだとただの配列なのでどーしたものかと。
これもすごく悩みました。
さっさと結論を書くと、配列を要素数分forかなんかで回して、similar_textでマッチする文字数を検索でした。
similar_textは比較対象と検索文字の類似性を求める関数です。
 
って、わかりづらいですね。コード書きます。
 

//$itemsは元の配列
//$cは合致した文字数
//$wordは検索文字
for($i=0;$j<count($items);$i++){
     $c=similar_text($word,$items[$i]);
     if($c==strlen($word)){
      //合致した場合の処理
     }
 }

ここでのポイントは元の検索文字のバイト数とsimilar_textを用いて得られた結果の文字数で整合性を取っている部分です。
ここを同じにしておかないと、検索元の文字の一部が含まれているだけで合致したことになってしまうので・・・。
けど、そこは「もしかしたら~」の検索に使えるかもですね。

PHPでの2次元配列のソート

今回はなんとなくPHPです。
なぜかというと、凄く追い込まれてしまったのでメモ的に載せます。
2次元配列のソートをしたい場合なのですが、方法としてはarray_multisortかusortを使う方法があると思います。ってか、自分が無知なだけかもしれませんがこれ以外知りません。
んで、CSVにあるデータを配列化して出力するってのをよくやってるのですが非常に困りました。
やった手順としては
 
1.CSVデータを配列として取得
2.その配列をusortを使ってソート
 
これだけでできるはずですよね?
しかし、なぜかできず・・・1時間以上悩みました。
んで、いろいろと考えているうちに気づきました。
 
「あ、CSVを2次元配列で取得してない・・・」
 
そう、ただの1次元?配列でしか取得してませんでした・・・。
ってことで、配列で取得したあとに2次元配列化してやっとこ完成。
あー、よかった。

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Bad Behavior has blocked 22 access attempts in the last 7 days.