php – 解析一个字符串然后发布
发布时间:2020-12-13 22:48:53 所属栏目:PHP教程 来源:网络整理
导读:我将数据作为字符串从另一个服务发布: ????????????标题= “姓名”,“姓” 安培; user_1382926 = “迈克”,史密斯 “安培; user_1383059 =” 索尼”,“威廉姆斯” 安培; user_1303EM000014 = “迈克”,“琼斯” 我在解析这个问题时迷失了,因为user_ *可能是
我将数据作为字符串从另一个服务发布:
????????????标题= “姓名”,“姓” &安培; user_1382926 = “迈克”,史密斯 “&安培; user_1383059 =” 索尼”,“威廉姆斯” &安培; user_1303EM000014 = “迈克”,“琼斯” 我在解析这个问题时迷失了,因为user_ *可能是任何东西,它不是一致的. 我试过了: $query = explode('&','heading="firstname","lastname"&user_1382926="Mike",Smith"&user_1383059="Sonny","Williams"&user_1303EM000014="Mike","Jones"'); $params = array(); foreach( $query as $param ){ list($name,$value) = explode('=',$param); echo $params[urldecode($name)][] = urldecode($value); } 但它只是给了我: "firstname","lastname""Mike",Smith""Sonny","Williams""Mike","Jones" 我希望能够发布到: $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; $stmt = $mysqli->prepare("INSERT INTO usertest (firstname,lastname) VALUES (?,?)"); $stmt->bind_param('ss',$firstname,$lastname); $stmt->execute(); 我如何解析这个以便正确发布? 解决方法
非常粗糙,但这是我到达的结果:
$names = array(); $string = 'heading="firstname","Smith"&user_1383059="Sonny","Jones"'; $arr = explode("&",$string); foreach($arr as $key_values){ if(substr($key_values,5) == 'user_'){ $piecies = explode("=",$key_values); foreach($piecies as $key=>$val){ if($key%2==0){ continue; } preg_match_all('/"(.*?)","(.*?)"/',$val,$first_last_name); $names[] = array('firstname'=>$first_last_name[1],'lastname'=>$first_last_name[2]); } } } echo '<pre>',print_r($names),'</pre>'; foreach($names as $name){ $firstname = $name['firstname']; $lastname = $name['lastname']; $stmt = $mysqli->prepare("INSERT INTO usertest (firstname,?)"); $stmt->bind_param('ss',$lastname); $stmt->execute(); } 注意:我在你的原始字符串中添加了史密斯(“迈克”,“史密斯”)之前的双引号,因为我希望它在OP中缺失. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |