[英]regex and upper and lower case
我正在使用這個
preg_match('/<meta\s+http-equiv="Content-Type" content="([^;]+)(?:;\s*charset=["]?([^"^\s]*))?"/i', $html, $match)
得到字符集,但這不適用於此
<META http-equiv=Content-Type content="text/html; charset=windows-1256">
有任何想法嗎?
您在preg_match()中有雙引號但在html示例中沒有。
這里: http-equiv = Content-Type
如果你想支持preg_match()在這里使用和不使用引號,可以簡單地將代碼更改為:
preg_match('/<meta\s+http-equiv=(")?Content-Type(")?\s+content="([^;]+)(?:;\s*charset=["]?([^"^\s]*))?"/i', $html, $match);
在屬性訂單更改時將使用的更好的版本:
preg_match('/<meta.+?content="([^;]+)(?:;\s*charset=["]?([^"^\s]*))?"/i', $html, $match);
如果你只對獲取字符集感興趣,為什么不使用更簡單的東西:
preg_match('/charset=([^"]+)/i', $html, $match);
當然,您可以調整它以滿足您的特定需求,但要保持簡單,讓它更容易上班。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.