PHP截取指定字符串中间的字符

:PHP如何截取指定字符串中间的字符,比如如何截取如下字符串中 [sell=55] 的 55这个数字。

$q = "秘qwqqq111密:[sell=55]0qwqw[/sell] 位置:[sell=55]0qwqw[/sell] 上面的付费查看";

:第一种,可以使用正则,即如何获取正则匹配到的结果,我们可以用 preg_match_all — 执行一个全局正则表达式匹配,来处理,代码如下

$q = "秘qwqqq111密:[sell=55]0qwqw[/sell] 位置:[sell=55]0qwqw[/sell] 上面的付费查看";

/**
 * 获取正则匹配结果的方法
 * @param  [type] $reg 正则表达式
 * @param  [type] $str 需要操作的字符串
 * @return [type] 返回一个数组结果
 */
function get_match_all($reg,$str){
 preg_match_all($reg,$str,$r);
 return @$r[1];
}

$c = get_match_all("/\[sell=(.+?)\]/", $q);
echo '<pre>';
var_dump($c);

:返回的结果如下

:第二种,我们可以用字符串操作方法,先通过 strpos — 查找字符串首次出现的位置,然后使用 substr — 返回字符串的子串,代码如下

$q = "秘qwqqq111密:[sell=55]0qwqw[/sell] 位置:[sell=55]0qwqw[/sell] 上面的付费查看";

$a = substr($q,strpos($q,'[sell=')+6);
$cost = substr($a,0,strpos($a,']'));

echo '<pre>';
var_dump($cost);

:最后打印结果如下

posted @ 2020-05-15 18:19  在斑马线上散布  阅读(6679)  评论(0编辑  收藏  举报
夫人不言,言必有中。这是高级臣僚的一种可贵品质,言辞精炼,直抵要害。