ホームページ >バックエンド開発 >PHPチュートリアル >parse_str関数について質問する

parse_str関数について質問する

WBOY
WBOYオリジナル
2016-06-20 12:26:031315ブラウズ

parse_str 関数は、文字列を配列に変換でき、インデックスも付いているので非常に便利です。ただし、インデックス値に . が含まれている場合は、自動的にアンダースコアに変換されます。例:

$key = "現代の教育テクノロジー";

$postd[1]="course.title=";
$postdd=$postd[1].$ key ;
parse_str($postdd,$fields);
print_r($fields);

parse_str 関数がドットをアンダースコアに変換しないようにするにはどうすればよいですか?


ディスカッションへの返信 (解決策)

parse_str はいHTTP プロトコルに従って動作する
キー名の . (ドット) は、曖昧さを避けるために http プロトコルによって作成された規則である _ (アンダースコア) に置き換えられます。
のように変換したい場合つまり、自分でコードを記述する必要があります

$s = 'a.1=2&b.2=3';$p = '/&(?!amp;)/';foreach(preg_split($p, $s) as $v) {  $t = explode('=', $v);  $r[$t[0]] = $t[1];}print_r($r);
Array(    [a.1] => 2    [b.2] => 3)

Method1=1&keyzy=name&keyword=Modern Educational Technology

ただし、上記の文字列が解析されると、
Array ([method1] = > 1)


本当ですか?

$s = 'method1=1&keyzy=name&keyword=现代教育技术';$p = '/&(?!amp;)/';foreach(preg_split($p, $s) as $v) {  $t = explode('=', $v);  $r[$t[0]] = $t[1];}print_r($r);
Array(    [method1] => 1    [keyzy] => name    [keyword] => 现代教育技术)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。