返回 pattern 的匹配次数。 它的值将是 0 次(不匹配)或 1 次,因为 preg_match() 在第一次匹配后 将会停止搜索。preg_match_all() 不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误preg_match()返回 FALSE。
// span 标签
preg_match_all('#<span .*?>(.*?)</span>#',你的代码,$matches);
// p 标签
preg_match_all('/<p.*?>(.*?)(?=<\/p>)/im', 你的代码, $matches);
1.第一次获取的时候获取的只有一条数据;使用的:preg_match
2.第二次更换为“preg_match_all”函数就获得了全部的数据
并取前三位
// 0 开始位置
// 3 规定被移除的元素个数,也是被返回数组的长度
array_splice($matches[1],0,3);
完整
foreach ($listchild as $k => $value){
// 正则匹配获取span里的值,并重新赋值
$matches = '';
// preg_match 匹配出第一条符合条件的数据后停止继续操作
// preg_match_all 匹配出全部
preg_match_all('#<span .*?>(.*?)</span>#',$value['accontent'],$matches);
unset($matches[0]);
// 取前三位
$listchild[$k]['accontent'] = array_splice($matches[1],0,3);
}
// 去掉会出现的换行、空格
foreach($matches[1] as $v){
$search=array(" "," ","\t","\n","\r");
$v = str_replace($search, '', $v);
$val = trim(strip_tags($v));
if(!empty($val)){
$bt_arrays[] = $val;
}
}
$matches[1] = array_filter($bt_arrays);
去除HTML标签
/*
*去除html标签,并截取指定个字符
* $contents 内容
* $number 字数
*/
public function tagecontent($contents,$number='85'){
$tagecontent = strip_tags($contents);
$pattern = '/\s/';//去除空白
$content = preg_replace($pattern, '', $tagecontent);
$list = mb_substr($content,0,$number, "UTF-8");
return $list;
}
数组转字符串 并换行
$label = implode("\n",$bt_arrays);