php页面取出一个词的前6个词与后6个词,并在取出的内容中,第一个词的strlen要大于或等于2,如果取到的第一个词没有大于或等于2,就要舍去,直到第一个词长度大于等于2
怎么实现呀,
下面是我的代码:
$body=", . 在 昨天 举行 的 中国 房地产 投融资 大会上 某 机构 发布";
$result_arr = explode(" ", $body);
$keyword='中国';
$index = array_search($keyword,$result_arr);
$part="";
for($n=$index-6;$n<$index+6;$n++)
{
$part .= $result_arr[$n];
}
echo $part."<br>";//这里可以输出 中国的前6个词与后6个词,只是第一个词是 标点符号,长度没有大于或等于2,那么显示的第一个词就应该向后移动到 在 字 ,上面的代码怎么修改呀,
thanks
怎么实现呀,
下面是我的代码:
$body=", . 在 昨天 举行 的 中国 房地产 投融资 大会上 某 机构 发布";
$result_arr = explode(" ", $body);
$keyword='中国';
$index = array_search($keyword,$result_arr);
$part="";
for($n=$index-6;$n<$index+6;$n++)
{
$part .= $result_arr[$n];
}
echo $part."<br>";//这里可以输出 中国的前6个词与后6个词,只是第一个词是 标点符号,长度没有大于或等于2,那么显示的第一个词就应该向后移动到 在 字 ,上面的代码怎么修改呀,
thanks
$arr = explode(' ', $body);
$num = count($arr);
$arr1 = array();
$arr2 = array();
foreach($arr as $k => $v){
if(strlen($v) <= 2){
array_shift($arr);
}else{
continue;
}
}
for($j = 0; $j < 6; $j++){
$arr1[] = $arr[$j];
}
echo '<pre>';print_r($arr2);exit;
如果:上面的$body=="每一天,为明天, . 在 昨天 举行 的 中国 房地产 投融资 大会上 某 机构 发布";
请在上面的代码上修改,thanks
$c = substr($text,-6);
$fstr = substr($text,0,$len);
$flen = 1;
for($i = 0;$i<$len;$i++){
if(ord(substr($fstr,$i,$flen)) > 0x80){
$flen++;
$arr[] = substr($fstr,$i,$flen);
$arr[] = $i;
return $arr;
}
}
}
$text = '每一天,为明天, . 在 昨天 举行 的 中国 房地产 投融资 大会上 某 机构 发布';
$arr = str($text,6);
echo substr($text,$arr[1],6).substr($text,-6,6);
{
if(check_str_crontab($part_arr[$n]) && $new_part ==''){continue;}
$new_part .= $part_arr[$n];
}
similar_text($part,$new_part,$per);
if(round($per,2)>75)
{
$part .= '';
}
else
{
$part .= $new_part;
}
$new_part = "";function check_str_crontab($str)
{
$arr = array(',', ':', '.', '。', ';','?','!',')','、','"');
$l = count($arr);
for($i = 0; $i < $l; $i++)
{
$cou=explode($arr[$i],$str);
if(count($cou)> 1)
{
return true;
exit;
}
}
}