首页 > 解决方案 > preg_replace 来自 Meta 和 Link 标记的额外双引号用于非空白字符?

问题描述

我在头部有链接标签

HTML 代码

<html><head>
<meta name="description" content="This is description of Example Sites 2018" />
<link href="https://examplesite.com/favicon.ico" rel="icon"/>
</head>
<body>
<a href="https://example.com">Click Here</a>
</body></html>

PHP 代码

preg_match("/([^\s]+)=\"([^\s]+)\"/i", $input_line, $output_array);

输出

<head>
<meta name=description content="This is description of Example Sites 2018" />
<link href=https://examplesite.com/favicon.ico rel=icon/>
</head>
<body>
<a href=https://example.com>Click Here</a>
</body>

我怎样才能

标签: phphtmlregexwordpress

解决方案


根据我的经验,最好不要使您的正则表达式复杂化(出于维护目的)。因此,您可以将提取分为三个步骤:

首先,提取head部分(或排除正文)。

其次,排除link部分。

最后,使用您编写的 Regex 来提取它。


推荐阅读