JavaScriptでstrtr
PHP の strtr を JavaScript で使えるようにしました。ここで出てる例と同じ結果を返すので多分問題ないと思います。
// 'hello all, I said hi'を返す
php_strtr( 'hi all, I said hello', {
'h' : '-',
'hello' : 'hi',
'hi' : 'hello'
});
PHP の strtr を JavaScript で使えるようにしました。ここで出てる例と同じ結果を返すので多分問題ないと思います。
// 'hello all, I said hi'を返す
php_strtr( 'hi all, I said hello', {
'h' : '-',
'hello' : 'hi',
'hi' : 'hello'
});
PHPのparse_strをJavaScriptで使うためのコードをつくりました。入れ子の配列にも対応してたら長く(100行程度)なったのでzipにしたものを置いておきます。
http_parse_query.js-v1.0.3.zip
これを script
タグで読み込むと関数 http_parse_query
が定義されます。parse_str
とはやや使い方が異なるので違う名前にしました。
var query_str = 'a=0&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3&c%5Bk%5D%5B%5D%5Br%5D=4';
var output = http_parse_query( query_str );
// 結果
output = {
"a" : "0",
"b" : ["1","2","3"],
"c" : { "k":[ {"r":"4"} ] }
}
配列は、すべての要素が0番からの連番になっている場合のみ添字配列として扱い、連番になっていない要素を含む場合は連想配列扱いになります。
第二・第三・第四引数に文字列を渡すと、PHP の http_build_query()
のそれと同じように解釈します。またクエリ文字列のURLエスケープは UTF-8 でしてある必要があります。
var query_str = 'var_0=%E3%81%82;var_1=%E3%81%84;var_2=%E3%81%86+%E3%81%88';
var output = http_parse_query( query_str, 'var_', ';', 'PHP_QUERY_RFC3986' );
// 結果
output = ["あ","い","う+え"];
URLのクエリ文字列をパースするコードは次のようになります。
// JavaScript
var output = http_parse_query( location.search.substr(1) );
// PHP(参考)
parse_str( $_SERVER['QUERY_STRING'], $output );