ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

PHPでJSON

意外と簡単だった。

JSON形式にエンコードするのにPEARとかPECLとか探してたけれど、
PHPの標準関数に json_encode() 関数があった。(PHP5.2以降)

PHP: json_encode - Manual

$json = json_encode( array('A'=>'aaa','B'=>'bbb','C'=>'ccc') );

レスポンスを返すほうのPHPはこれでおしまい。簡単だね!
あとはこのレスポンスを受け取るJavascriptで(prototype.jsを使って書くと)

new Ajax.Request(
url,
{
method: 'get',
parameters: params,
onComplete:function(res) {
$obj = eval($res.responseText);
}
}
);

でオブジェクトの生成。
あとは使え!って感じかな。

responseText を responceText ってかいて
undefined に丸一日悩んだ昨日もいまやいい思い出・・(T_T)
スポンサーサイト
  1. 2008/02/02(土) 12:18:09|
  2. その他
  3. | トラックバック:0
  4. | コメント:1

fgetcsvでUTF-8のCSVが読み込めない

fgetcsvでUTF-8のCSVが読み込めない

OS RHEL4
PHP 5.2.3
Apache 2.0.52



たとえば以下のようなCSVファイルだとだめ。
Aの部分しか読み込まれず、全角部分は空白。
A,ぜんぜん,読み込め,ない

ダブルコーテーションで囲うとちゃんと読み込めた。
B,"囲うと","普通に","読めた"

でもExcelで常時「"」で囲ってCSVを出力するにはマクロを組むしかないらしい。
http://support.microsoft.com/default.aspx?scid=kb;ja;123183
面倒くさいので、なんとか読めるようにしたい。

以下は試したこと。でも結局ダメだった。。。



・環境変数 LANG を ja_JP.UTF-8 に変更

どこかで文字コードが悪いに違いない、ということで
Apache+PHPで環境変数を追加したい」でやってみた方法と同じく /etc/sysconfig/httpd に
export LANG=ja_JP.UTF-8
と追記。でもなぜか反映されずに LANG は「c」のままだった。
追加は OK だが上書きは NG らしい。
nobody ユーザの環境変数がこっちより後に読み込まれて上書きされてるとか、そんな感じか?
そんなことあんの?

仕方なくソースコードに
putenv('LANG=ja_JP.UTF-8');
を追記。

phpinfo() で見るとちゃんと environment セクションの LANG が書き換えられていた。
でも CSV 読み込み結果は変わらず。

ためしに $_ENV['LANG'] を出力してみると、
なぜか「ja_JP.UTF-8」ではなく「c」に。

putenv で環境変数を書き換えると$_ENV に反映されないらしい。
意味が分からん。

とりあえず、やっていいのか分からないけど、$_ENV に直接代入してみた。
$_ENV['LANG']='ja_JP.UTF-8';

でもCSV読み込み結果は変わらず。


見当違いの箇所をいじってんのかなぁ・・。
  1. 2008/01/21(月) 17:32:50|
  2. その他
  3. | トラックバック:1
  4. | コメント:2

winscpがぶちぶち切れるのをなんとかする

Connection項目のKeepAliveがOffになってるから切れる。
○○秒に一回nullパケットを送信して、コネクションが切れないように設定。



  1. 2007/05/18(金) 12:02:49|
  2. その他
  3. | トラックバック:0
  4. | コメント:1

USBを挿したらそれに入ってる複数のツールを自動で立ち上がるようにしたい

USBメモリに入れて普段使ってるツールを持ち運ぶとマジ便利。
今入ってるのは

XTMemo(メモツール)
http://www.towofu.net/soft/xtmemo.php

IDManager(パスワード管理ツール)
http://www.woodensoldier.info/soft/idm.htm

この二つがないと、もう生活できない。
で、CD-ROMみたいに、USB挿したらすぐ立ち上がってほしい。
CD-ROMの場合、ルートにautorun.infっていうファイルを置いて、

autorun.inf
[autorun]
open=hogehoge.exe

って書くと自動で立ち上がる。
とりあえず作ってみた。

autorun.inf
[autorun]
open=tools\xtmemo1_4_5\XTMemo.exe
open=tools\idm690\IDM.exe

挿してみた。そして動かなかった。
どうやらautorun.infはCD/DVDだけらしい。

でもだいじょうぶ。 [USBを挿したらそれに入ってる複数のツールを自動で立ち上がるようにしたい]の続きを読む
  1. 2007/03/28(水) 16:08:06|
  2. その他
  3. | トラックバック:0
  4. | コメント:1

PHPの配列の結合

いつも忘れるのでメモ用
既存の配列の後ろに配列をくっつけたいときは
「+」演算子か「array_merge」関数

$ php -r "var_dump(array('a'=>1,2,'b'=>3) + array('a'=>4,'c'=>5,6));"
array(4) {
 ["a"]=>
 int(1)
 [0]=>
 int(2)
 ["b"]=>
 int(3)
 ["c"]=>
 int(5)
}

$ php -r "var_dump(array_merge(array('a'=>1,2,'b'=>3), array('a'=>4,'c'=>5,6)));"
array(5) {
 ["a"]=>
 int(4)
 [0]=>
 int(2)
 ["b"]=>
 int(3)
 ["c"]=>
 int(5)
 [1]=>
 int(6)
}
  1. 2007/02/13(火) 15:58:22|
  2. その他
  3. | トラックバック:0
  4. | コメント:0
次のページ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。