我可以拆分这个字符串来获取我需要的信息吗?

我得到了这个项目,用户可以填写表格来解决与工作相关的问题,我被要求获取每个人填写的信息,以便他们可以看到他们发送的所有表格,但这些信息都存储在一个数据库列,我不确定我是否能够拆分这个长字符串。

首先,这是保存到数据库中的字符串:

a:20:{s:12:"cfdb7_status";s:6:"unread";s:9:"-name";s:0:"Alvaro";s:13:"-lastname";s:0:"Alvaro";s:10:"-email";s:19:"mail@mail.es";s:15:"-tipoconsul";s:10:"Vacaciones";s:13:"-fecharec";s:10:"2018-08-09";s:14:"-fechaalta";s:10:"2017-11-01";s:18:"-CategoriaProf";s:19:"Tecnico electronico";s:18:"-NombreEmpresa";s:30:"Inversiones Tecnicas G&F S.L. ";s:21:"-ActividadEmpresa";s:29:"venta de equipos electronicos";s:18:"-DireccEmpresa";s:15:"calle falsa 123";s:15:"-telEmpresa";s:9:"555555555";s:20:"-ContactoEmpresa";s:6:"Alvaro";s:16:"-Comentarios";s:8:"Probando";s:18:"-comunicacion1";s:0:"";s:18:"-comunicacion2";s:0:"";s:9:"-nom1";s:0:"";s:9:"-nom2";s:0:"";s:13:"-contrat1";s:0:"";s:13:"-contrat2";s:0:"";}

在此示例中,我需要获取以下信息才能显示:

  • “阿尔瓦罗”

  • “阿尔瓦罗”

  • “邮件@mail.es”

  • “度假屋”

  • “2018-08-09”

  • “2017-11-01”

  • “电子技术”

  • "Inversiones Tecnicas G&F SL"

  • “电子设备之窗”

  • "calle falsa 123"

  • “555555555”

  • “阿尔瓦罗”

  • 《先行者》

  • comunicacion1 和 comunicacion2(在本例中为空)

  • 以下所有 nom 和 contrat 字段

我曾多次尝试分解字符串,但没有很好的分隔符,此时我想我已经尝试了所有可能的组合 : ; _ " "

<?php 

    $info = explode(" ", $resultado->form_value); 

    $i = 0;

    $j = 0;

    while ($i < count($info)) {

        // echo $info[$i];

        $info2 = explode("_", $info[$i]);

        while ($j < count($info2)) {

            echo $info2[$j];

        $j++;

    }

    $i++;

    }

?>

这是我去过的最接近的一个,但是正如你所看到的,还有很多信息没有出现在最后的字符串中


我对正则表达式知之甚少,我尝试创建一个,但我不太了解语法,我也不知道这个字符串是否可以用它所具有的所有标点符号拆分。再次感谢您的时间和耐心,非常感谢我能得到的所有帮助!


胡说叔叔
浏览 106回答 1
1回答

catspeake

正如建议的那样,解决方案是将 unserialize() 方法应用于字符串,有效地将其转换为数组。
打开App,查看更多内容
随时随地看视频慕课网APP