首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php过滤字符串?

如何使用php过滤字符串?
EN

Stack Overflow用户
提问于 2017-03-15 22:23:07
回答 3查看 1.9K关注 0票数 0

我有一个插件从数据库中导出一串字符串给我。返回的数据格式如下

代码语言:javascript
复制
a:3:{i:0;s:8:"Skeletal";i:1;s:6:"Cardio";i:2;s:8:"Muscular";}

a:3:{i:0;s:14:"Access to care";i:1;s:15:"Confidentiality";i:2;s:20:"Consent to treatment";}

我可以应用一个php函数来过滤数据,如何让它像这样返回,使用一个函数。

代码语言:javascript
复制
Skeletal, Cardio, Muscular

Access to care, Confidentiality, Consent to treatment
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-15 22:26:04

这些字符串是序列化变量。特别是数组。使用unserialize()获取数组,然后使用join()以逗号的方式分隔数组。

代码语言:javascript
复制
$unserialized_array = unserialize($string);
$comma_separated = join(', ', $unserialized_array);

echo $comma_separated;

编辑:我认为这是最简单的解决方案,但下面的黑石时代的答案提供了一个正则表达式,它也能做你想做的事情(你确实要求了一个正则表达式);

票数 3
EN

Stack Overflow用户

发布于 2017-03-15 22:26:19

这些是序列化的数组,您需要取消序列化

票数 2
EN

Stack Overflow用户

发布于 2017-03-15 22:28:46

您可以使用一个非常简单的preg_match_all() of /".*?"/来完成这一任务。

代码语言:javascript
复制
<?php
$string = 'a:3:{i:0;s:8:"Skeletal";i:1;s:6:"Cardio";i:2;s:8:"Muscular";}';
preg_match_all('/".*?"/', $string, $matches);
print_r($matches);

现在,$matches包含一个数组,您可以简单地访问以下的索引:

代码语言:javascript
复制
Array
    (
        [0] => "Skeletal"
        [1] => "Cardio"
        [2] => "Muscular"
    )

我已经创建了这个这里的工作示例。

希望这会有帮助!)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42821830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档