Php 处理任意联系人信息参数的更好方法
我有一张包含联系信息的表格。每个都有一个类型,然后是联系信息本身。例如:Php 处理任意联系人信息参数的更好方法,php,parsing,httprequest,string-parsing,Php,Parsing,Httprequest,String Parsing,我有一张包含联系信息的表格。每个都有一个类型,然后是联系信息本身。例如: Type | Contact ------------------------------- cell | 555-555-5555 home | 444-444-4444 email | abc@def.com 这是一项功能性要求,用户可以使用jQuery从表单中添加/删除联系人(仅显示存在的联系人信息-即,它不是静态联系人表单) 由于用户可以在表单中添加/删除他们喜欢的任何行,因此会生成类似于以
Type | Contact
-------------------------------
cell | 555-555-5555
home | 444-444-4444
email | abc@def.com
这是一项功能性要求,用户可以使用jQuery从表单中添加/删除联系人(仅显示存在的联系人信息-即,它不是静态联系人表单)
由于用户可以在表单中添加/删除他们喜欢的任何行,因此会生成类似于以下内容的HTTP参数(数字不是连续的,也可能不是连续的):
因此,联系人
和联系人
参数后的数字是任意的,除非它们用于将类型与相关联系人信息相匹配
那么,在接收端,在PHP中,如何有效地处理参数,使用数字匹配类型和联系人?我认为最好的方法是通过regex,但我能想到的最简单的函数是遍历整个$\u请求数组,去掉以contact
开头的参数,然后从那里开始
有没有更有效的方法?似乎我正在编写一个手动字符串/参数解析方法,而可能有一个函数可以执行此操作,但我并不知道。因为我事先不知道表单参数的确切名称,所以我不能相信会有一个
contact1
,contact2
,等等。通过一些巧妙的命名,你可以很容易地在帖子上匹配它们:
<select name="contact[3][type]">...</select>
<input name="contact[3][value]" ..>
<select name="contact[994][type]">...</select>
<input name="contact[994][value]" ..>
<select name="contact[45][type]">...</select>
<input name="contact[45][value]" ..>
。。。
...
...
在PHP中
<?php
foreach($_POST['contact'] as $id => $data){
echo "$id => type is {$data['type']}, value is {$data['value']}";
}
迭代$\u POST或$\u GET是个好主意,而不是$\u请求,因为它可能包含cookie。但是,最好不要使用正则表达式。为此,可以使用substr。观察
foreach($_GET as $k=>$v) {
if(strpos($Haystack, "contact") === 0) {
//process $k
}
}
哦,基本上是把它们放在数组中。那很容易。谢谢
foreach($_GET as $k=>$v) {
if(strpos($Haystack, "contact") === 0) {
//process $k
}
}