过滤变量中的数据并存储到php中的另一个变量中

mw3dktmi  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(204)

这是我的密码

<?php 

    $content = "Hello Guys how are you @[6] i hope you are doing well @[9]";

    $tags = ""; // Value under @[]

    echo $tags;

 ?>

我想将@[]下的值存储到用逗号分隔的$标记

w6mmgewl

w6mmgewl1#

你可以用 preg_match_all [1] 获取所有人之间的内容 @[] 部分。那么 implode [2] 获取逗号分隔字符串的结果。

<?php

define('FIRST_MATCH_GROUP', 1);

$content = "Hello Guys how are you @[6] i hope you are doing well @[9]";
$tags = [];
preg_match_all("/@\[(.)\]/", $content, $tags); // Value under @[]

$tags = implode(',', $tags[FIRST_MATCH_GROUP]);

var_dump($tags);

工作示例:
https://3v4l.org/7kyh6
5.6.38-7.3.0rc3的输出
字符串(3)“6,9”
正则表达式解释:
https://regex101.com/r/cxh6l3/1/
/@[(.)]/
@按字面意思匹配字符@(区分大小写)
[匹配字符[字面意思(区分大小写)]
第一捕获组(.)
. 匹配任何字符(行终止符除外)
]匹配字符]字面意思(区分大小写)
编辑:对于介于 @[] 你必须把正则表达式调整到 @\[(.+)\] 并添加一个不冻结的标志,请参见https://regex101.com/r/cxh6l3/2 以及https://3v4l.org/aj0ln

相关问题