通过正则取html页面的meta信息的问题

lp 2006-06-15 03:18:05
用一个正则取html页面中meta的一些信息,包括title,以及charset
title通过以下
preg_match_all('/<title>(.*)<\/title>/si', $html, $matches);
$title = $matches[1][0];

charset通过
preg_match_all('/<meta.*charset=([^;]*)">/i', $html, $matches);

取title的一切正常,但charset有时就不正常
比如在碰到<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
或者<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
都取不正确
求一个通用的取charset的正则
...全文
253 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
michael_g_hu 2006-06-15
  • 打赏
  • 举报
回复
preg_match_all('/<meta.*charset=([^;]*)">/i', $html, $matches);
在META中因为在方括号结束之前有个‘/’,你没有加这个,而是直接">,应该是"\/>
meizz 2006-06-15
  • 打赏
  • 举报
回复
/<meta[^<>]+charset=([^<>\"\']+)[^<>]+>/i

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧