preg_将字符串的html属性替换为;在PHP中

preg_将字符串的html属性替换为;在PHP中,php,regex,string,replace,preg-replace,Php,Regex,String,Replace,Preg Replace,我在PHP中有一个字符串变量,它的内容是: $var='<SPAN id=1 value=1 name=1> one</SPAN> <div id=2 value=2 name=2> two</div >'; .... $var='one 二",; .... 我需要一个用于环绕html属性的函数,其中包含“”我需要对所有元标记执行此操作,等等。结果应该是: $var='<SPAN id= "1" value="1" name="1"&g

我在PHP中有一个字符串变量,它的内容是:

$var='<SPAN id=1 value=1 name=1> one</SPAN>
<div id=2 value=2 name=2> two</div >';
 ....
$var='one
二",;
....
我需要一个用于环绕html属性的函数,其中包含“”我需要对所有元标记执行此操作,等等。结果应该是:

$var='<SPAN id= "1" value="1" name="1"> one </SPAN>
<div id="2" value="2" name="2" > two</div >';
 ...
$var='one
二",;
...

我需要为=“[a-z][a-z][1-9]”替换所有=[a-z][a-z][1-9]。我需要一个preg_replace的常规表达式

您需要将其全部用单引号括起来,如下所示:

$myHtml='<SPAN id="1" value="1" name="1"> one </SPAN>
    <div id="2" value="2" name="2" > two</div >';
$myHtml='one
二",;
使用一个可以避免逃避除
$
以外的大多数事情的方法:

$var = <<<EOL
<span id="1" value="1" name="1">one</span>
etc...
EOL

$var=我将运行字符串:

$var='one
二",;
//创建新文档并加载标记。
$dom=新的DOMDocument();
$dom->loadHTML($var);
//DOMDocument添加doctype和标记(如果不是)
//现在,找到标签的内容(应该是
//原始标记)并将其转储回字符串。
$var=$dom->saveHTML($dom->getElementsByTagName('body')->item(0));
//除去文档附加的实际标记。
$var=preg#u replace(“#^\s*(.+?)\s*$#ms',“$1',$var);
//此处$var将是您所需的输出:
var_dump($var);
输出:

string(85) "<span id="1" value="1" name="1"> one</span>\n<div id="2" value="2" name="2"> two</div>"
string(85)“一个\n两个”
请注意,如果
$var
可能包含实际的
标记,则需要对此代码进行修改。我把它留给OP做练习。

它是


$var=preg_replace('/(?谢谢,但我最初没有双引号来转义它们。替换是个问题。我有this=text和I need=“text”谢谢,但我最初没有双引号,它不会出现在单引号中。好的,那么你的问题是“如何为这些属性自动添加双引号?”请注意向下投票者-检查编辑前的问题以了解我给出此答案的原因!这是一个很好的解决方案,但对于IE8和IE8的DOM,我需要此解决方案。IE8不使用“.IE8使用此解决方案。这是个问题,因为我需要此解决方案。此解决方案使用
”字符围绕属性,正如我在输出中所示。
string(85) "<span id="1" value="1" name="1"> one</span>\n<div id="2" value="2" name="2"> two</div>"
$var = preg_replace('/(?<==)(\b\w+\b)(?!")(?=[^<]*>)/', '"$1"', $var);