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

parse_str関数について質問する

WBOY
リリース: 2016-06-20 12:26:03
オリジナル
1310 人が閲覧しました

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] => 现代教育技术)
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート