如何在两个斜杠之间提取字符串php

时间:2017-07-14 12:10:24

标签: php

我知道在php中使用explode()函数很容易在两个斜杠之间提取字符串,如果字符串就像

本地主机/ used_cars /搜索/ mk_honda / md_city / mk_toyota

我想在mk_之后提取字符串,直到斜杠如:** honda,toyota **

任何帮助都将受到高度赞赏。

我这样做

echo strpos(uri_string(),'mk') !== false ? $arr = explode("/", $string, 2);$first = $arr[0]; : ''; 

但没有工作,因为如果用户在任何位置输入mk_honda,那么explode()无法处理。

3 个答案:

答案 0 :(得分:2)

使用正则表达式:

http://ideone.com/DNHXsf

<?php

$input = 'localhost/used_cars/search/mk_honda/md_city/mk_toyota';

preg_match_all('#/mk_([^/]*)#', $input, $matches);

print_r($matches[1]);

?>

输出:

Array
(
    [0] => honda
    [1] => toyota
)

答案 1 :(得分:0)

试试这个

const

输出为

  

汽车,本田,城市,丰田

答案 2 :(得分:0)

/分解字符串,然后使用strpos检查数组的每个元素:

$string = 'localhost/used_cars/search/mk_honda/md_city/mk_toyota';
$parts = explode('/', $string);
$r = [];
foreach ($parts as $p) {
    // use `===` as you need `mk_` in position 0
    if (strpos($p, 'mk_') === 0) {   
        // 3 is a length of `mk_`
        $r[] = substr($p, 3);    
    }
}
echo'<pre>',print_r($r),'</pre>';