php 正则匹配获取span标签值

文档

返回 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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间轴-小文同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值