Intereting Posts

preg_replace, как атрибуты окружения html для строки с "в PHP

У меня есть строковая переменная в PHP, ее содержимое:

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

Мне нужна функция для атрибутов объемного html с помощью «» Мне нужно сделать это для всего метатега

, и т. д. результат должен быть следующим:

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

Мне нужно заменить all = [az] [AZ] [1-9] на = "[az] [AZ] [1-9]". Мне нужно регулярное выражение для preg_replace

Related of "preg_replace, как атрибуты окружения html для строки с "в PHP"

Вам нужно обернуть все это в одинарные кавычки следующим образом:

 $myHtml='<SPAN id="1" value="1" name="1"> one </SPAN> <div id="2" value="2" name="2" > two</div >'; 

Его решение

 $var = preg_replace('/(?<==)(\b\w+\b)(?!")(?=[^<]*>)/', '"$1"', $var); 

спасибо за Ωmega, его работы на IE8

используйте heredoc, который устраняет необходимость избегать большего всего, кроме $ :

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

Я бы DOMDocument строку через DOMDocument :

 $var='<SPAN id=1 value=1 name=1> one</SPAN> <div id=2 value=2 name=2> two</div >'; // Create a new DOMDocument and load your markup. $dom = new DOMDocument(); $dom->loadHTML($var); // DOMDocument adds doctype and <html> and <body> tags if they aren't // present, so find the contents of the <body> tag (which should be // your original markup) and dump them back to a string. $var = $dom->saveHTML($dom->getElementsByTagName('body')->item(0)); // Strip the actual <body> tags DOMDocument appended. $var = preg_replace('#^<body>\s*(.+?)\s*</body>$#ms', '$1', $var); // Here $var will be your desired output: var_dump($var); 

Вывод:

 string(85) "<span id="1" value="1" name="1"> one</span>\n<div id="2" value="2" name="2"> two</div>" 

Обратите внимание, что если $var может содержать фактический <body> , изменения должны быть внесены в этот код. Я оставляю это как упражнение для ОП.