- $wcharset = preg_match("/<meta.+?charset=[^\w]?([-\w]+)/i",$filecnt,$temp) ? strtolower($temp[1]):"";
- $wtitle = preg_match("/<title>(.*)<\/title>/isU",$filecnt,$temp) ? $temp[1]:"";
这个网上的,还不是最好的。
最完美的正则表达式是这样的:
preg_match('/<meta[^>]*?charset=(["\']?)([a-zA-z0-9\-\_]+)(\1)[^>]*?>/is', $html, $charset);
/<meta[^>]*?charset=(["\']?)([a-zA-z0-9\-\_]+)(\1)[^>]*?>/is
为什么说完美呢,看看图就知道了:

group2就是要取的值。
将meta中可能写入其它项都考虑到了,而且也考虑到可能有引号可能没有引号,可能是双引号也可能是单引号。
其实最牛的是这个可视化正则表达式检测。
网址为:https://jex.im/regulex/
通过它,发现找出html标签的最佳正则是
<([^>]+?)>
/<meta[^>]*?charset=(["\']?)([a-zA-z0-9\-\_]+)(\1)[^>]*?>/is
为什么说完美呢,看看图就知道了:
group2就是要取的值。
将meta中可能写入其它项都考虑到了,而且也考虑到可能有引号可能没有引号,可能是双引号也可能是单引号。
其实最牛的是这个可视化正则表达式检测。
网址为:https://jex.im/regulex/
通过它,发现找出html标签的最佳正则是
<([^>]+?)>