加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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中缺失.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读