PHPはURLパラメータ配列をASCIIコード辞書順に並べ替え、URLキー値ペアのフォーマットで文字列につづる
方法1(コードが少ない):
方法2(比較的柔軟):
ksort()関数:
1、定義:キー名で関連配列を昇順に並べ替える
2、文法:
ksort(array,sortingtype);
パラメータ:
パラメータ
説明
array
必要です.ソートする配列を指定します.
sortingtype
オプション.配列の要素/アイテムの配置方法を指定します.可能な値: 0 = SORT_REGULAR-デフォルト.各項目を通常の順序で並べます(Standard ASCII、タイプは変更しません). 1 = SORT_NUMERIC-各項目を数字として扱う. 2 = SORT_STRING-各項目を文字列として扱う. 3 = SORT_LOCALE_STRING-各項目を文字列として処理し、現在の領域設定に基づいて(setlocale()で変更可能). 4 = SORT_NATURAL-各項目を文字列として処理し、natsort()のような自然なソートを使用します. 5 = SORT_FLAG_CASE-SORT_STRINGまたはSORT_NATURALを組み合わせて文字列をソートできます.大文字と小文字を区別しません. 説明:
ksort()関数は、キー名に従って配列をソートし、配列値に元のキーを保持します.
オプションの2番目のパラメータには、追加のソートフラグが含まれます.
成功するとTRUEに戻り、そうでなければFALSEに戻る.
その他:
戻り値
成功するとTRUEに戻り、失敗するとFALSEに戻る.
PHPバージョン
4+
http_build_query()関数:
定義:URL-encodeを生成した後の要求文字列、すなわち、与えられた関連付け(または下付き)配列を使用してURL-encodeを通過する要求文字列を生成します.
構文:
string http_build_query ( mixed
パラメータ:
query_data:配列または属性を含むオブジェクトです.1つのquery_data配列は、単純な1次元構造であってもよいし、配列からなる配列であってもよい(他の配列を順次含んでもよい).query_dataがオブジェクトである場合、publicの属性のみが結果を加える.
numeric_prefix:このパラメータがベース配列で数値ダウンスケールを使用して同時に与えられている場合、このパラメータ値はベース配列の数値ダウンスケール要素の接頭辞として使用されます.これは、PHPまたは他のCGIプログラムが後でデータを復号する際に正当な変数名を取得するためである.
arg_separator:http_build_queryが生成する文字列における各パラメータ間の接続記号はphpである.iniのarg_separator.outputで決定します.デフォルトは&このパラメータを指定して使用しない限りarg_を使用します.separator.outputでパラメータを区切ります.
enc_type:PHPをデフォルトで使用QUERY_RFC1738.enc_の場合typeはPHP_QUERY_RFC 1738では、符号化は、»RFC 1738規格およびアプリケーション/x-www-form-urlencodedメディアタイプで符号化され、スペースはプラス記号(+)に符号化される.enc_typeがPHP_QUERY_RFC 3986である場合、»RFC 3986に従って符号化され、スペースはパーセンテージ符号化(%20)される.
戻り値:
URLコードされた文字列を返します.
例:
出力結果:
name=xiao7&age=18&sex=man&language=php+java name=xiao7&age=18&sex=man&language=php+java name=xiao7&age=18&sex=man&language=php%20java
ASCII($data);
?>
方法2(比較的柔軟):
$val) { // POST
if ($val == ''||$key == 'sign'||$key == 'param') continue; //
if ($sign) $sign .= '&'; // & &
$sign .= "$key=$val"; // url
}
return $sign;
}
// :
$data=input('post.');
$stringTemp=$this->ASCII($data);
?>
ksort()関数:
1、定義:キー名で関連配列を昇順に並べ替える
2、文法:
ksort(array,sortingtype);
パラメータ:
パラメータ
説明
array
必要です.ソートする配列を指定します.
sortingtype
オプション.配列の要素/アイテムの配置方法を指定します.可能な値:
ksort()関数は、キー名に従って配列をソートし、配列値に元のキーを保持します.
オプションの2番目のパラメータには、追加のソートフラグが含まれます.
成功するとTRUEに戻り、そうでなければFALSEに戻る.
その他:
戻り値
成功するとTRUEに戻り、失敗するとFALSEに戻る.
PHPバージョン
4+
http_build_query()関数:
定義:URL-encodeを生成した後の要求文字列、すなわち、与えられた関連付け(または下付き)配列を使用してURL-encodeを通過する要求文字列を生成します.
構文:
string http_build_query ( mixed
$query_data
[, string $numeric_prefix
[, string $arg_separator
[, int $enc_type
= PHP_QUERY_RFC1738
]]] ) パラメータ:
query_data:配列または属性を含むオブジェクトです.1つのquery_data配列は、単純な1次元構造であってもよいし、配列からなる配列であってもよい(他の配列を順次含んでもよい).query_dataがオブジェクトである場合、publicの属性のみが結果を加える.
numeric_prefix:このパラメータがベース配列で数値ダウンスケールを使用して同時に与えられている場合、このパラメータ値はベース配列の数値ダウンスケール要素の接頭辞として使用されます.これは、PHPまたは他のCGIプログラムが後でデータを復号する際に正当な変数名を取得するためである.
arg_separator:http_build_queryが生成する文字列における各パラメータ間の接続記号はphpである.iniのarg_separator.outputで決定します.デフォルトは&このパラメータを指定して使用しない限りarg_を使用します.separator.outputでパラメータを区切ります.
enc_type:PHPをデフォルトで使用QUERY_RFC1738.enc_の場合typeはPHP_QUERY_RFC 1738では、符号化は、»RFC 1738規格およびアプリケーション/x-www-form-urlencodedメディアタイプで符号化され、スペースはプラス記号(+)に符号化される.enc_typeがPHP_QUERY_RFC 3986である場合、»RFC 3986に従って符号化され、スペースはパーセンテージ符号化(%20)される.
戻り値:
URLコードされた文字列を返します.
例:
$data = array('name'=>'xiao7',
'age'=>18,
'sex'=>'man',
'language'=>'php java');
echo http_build_query($data) . "
";
echo http_build_query($data, '', '&')."
";
echo http_build_query($data, '', ini_get('arg_separator.output'),PHP_QUERY_RFC3986);
出力結果:
name=xiao7&age=18&sex=man&language=php+java name=xiao7&age=18&sex=man&language=php+java name=xiao7&age=18&sex=man&language=php%20java