Heim > Fragen und Antworten > Hauptteil
谁帮我想个好点的办法,用php提取下面的字符串中urlq=到&sa=U之间的内容
urlq=https://zh.wikipedia.org/zh/test&sa=U&ved=0ahUKEwjZyO_jtvTKAhXFGh4KHVPkA70QFggeMAE&usg=AFQjCNET0LD_wKKA7nfCkcC44Oii6I13nQ
PHPz2017-04-10 17:05:38
正则啦
$str = 'urlq=https://zh.wikipedia.org/zh/test&sa=U&ved=0ahUKEwjZyO_jtvTKAhXFGh4KHVPkA70QFggeMAE&usg=AFQjCNET0LD_wKKA7nfCkcC44Oii6I13nQ';
preg_match("/urlq=(.*?)&sa/", $str, $a);
$b = $a[1];
echo $b;
分割啦
$str = 'urlq=https://zh.wikipedia.org/zh/test&sa=U&ved=0ahUKEwjZyO_jtvTKAhXFGh4KHVPkA70QFggeMAE&usg=AFQjCNET0LD_wKKA7nfCkcC44Oii6I13nQ';
$str1 = explode('urlq=', $str);
$str2 = explode('&sa', $str1[1]);
$b = $str2[0];
echo $b;
天蓬老师2017-04-10 17:05:38
给你一个自定义函数
//$kw1为想截取的字符串
//$mark1位起始字符
//$mark2为结束字符
//返回一个截取好的字符串
//截取指定两个字符串之间
function getNeedBetween($kw1,$mark1,$mark2){
$kw=$kw1;
$kw='123'.$kw.'123';
$st =stripos($kw,$mark1);
$ed =stripos($kw,$mark2);
if(($st==false||$ed==false)||$st>=$ed)
return 0;
$kw=substr($kw,($st+1),($ed-$st-1));
return $kw;
}