[英]How to extract string between two slashes php
我知道使用php中的explode()函数很容易提取两个斜线之间的字符串,如果字符串像
本地主机/ used_cars /搜索/ mk_honda / md_city / mk_toyota
我想在mk_之后提取字符串,直到像这样的斜线:**本田,丰田**
任何帮助将不胜感激。
我就是这样
echo strpos(uri_string(),'mk') !== false ? $arr = explode("/", $string, 2);$first = $arr[0]; : '';
但无法正常工作,因为如果用户在任何位置输入mk_honda,则explode()均无法处理该问题。
使用正则表达式:
<?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
)
试试这个
$str='localhost/used_cars/search/mk_honda/md_city/mk_toyota';
$str=explode('/',$str);
$final=[];
foreach ($str as $words){
(!empty(explode('_',$words)))?(isset(explode('_',$words)[1]))?$final[]=explode('_',$words)[1]:false:false;
}
$final=implode(',',$final);
echo $final;
它给出输出为
汽车,本田,市,丰田
用/
分解字符串,然后使用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>';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.