通过substr来实现,先算出后面的那个矩离,与前面那个子串的矩离,然后取子串可以从前面取,也可以从后面取,
如:$str="NAS/NMS COMPSITE (NasdaqSC:^IXIC) Quote data by ReutersIndex Value:2,030.08Trade Time:5:16PM ETChange: 35.40 (1.71%)Prev Close:2,065.48Open:2,072.95Day's Range:2,026.20 - 2,073.4252wk Range:1,359.32 - 2,153.831d";
$strpos1=strpos($str,"Index Value:");
$strpos2=strpos("$str,"Trade Time:");
$length=$strpos2-$strpos1;
$string=substr($str,$strpos1,length);//$string=($str,$strpos2,-length)反向查找
如:$str="NAS/NMS COMPSITE (NasdaqSC:^IXIC) Quote data by ReutersIndex Value:2,030.08Trade Time:5:16PM ETChange: 35.40 (1.71%)Prev Close:2,065.48Open:2,072.95Day's Range:2,026.20 - 2,073.4252wk Range:1,359.32 - 2,153.831d";
$strpos1=strpos($str,"Index Value:");
$strpos2=strpos("$str,"Trade Time:");
$length=$strpos2-$strpos1;
$string=substr($str,$strpos1,length);//$string=($str,$strpos2,-length)反向查找
$str = "NAS/NMS COMPSITE (NasdaqSC:^IXIC) Quote data by ReutersIndex Value:2,030.08Trade Time:5:16PM ETChange: 35.40 (1.71%)Prev Close:2,065.48Open:2,072.95Day's Range:2,026.20 - 2,073.4252wk Range:1,359.32 - 2,153.831d";
$n1 = strpos($str,'Index Value:');
$n2 = strpos($str,'Trade Time:');
$n1 += strlen('Index Value:');
$n = $n2-$n1;$string = substr($str,$n1,$n);
echo "--- ",$n1,$n2,"<br/><br/>";
echo "<span style='color: red'>",$string,"</span>";
?>
$strpos1 += strlen("Index Value:");
才是真正要的结果吧。
$str="NAS/NMS COMPSITE (NasdaqSC:^IXIC) Quote data by ReutersIndex Value:2,030.08Trade Time:5:16PM ETChange: 35.40 (1.71%)Prev Close:2,065.48Open:2,072.95Day's Range:2,026.20 - 2,073.4252wk Range:1,359.32 - 2,153.831d";
preg_match("'Index Value:(.+)Trade Time's",$str,$arr);
if($arr){
echo $arr["1"];
}
?>