php 正则匹配获取span标签值

  • Post author:
  • Post category:php



文档

返回 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);



版权声明:本文为weixin_43018356原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。