>  기사  >  백엔드 개발  >  问一个关于parse_str函数的问题

问一个关于parse_str函数的问题

WBOY
WBOY원래의
2016-06-20 12:26:031291검색

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=现代教育技术

可上面这个字符串解析之后就变成了

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으로 문의하세요.