Php 使用<;包装所有未包装的文本;p>;

Php 使用<;包装所有未包装的文本;p>;,php,regex,dom,preg-replace,Php,Regex,Dom,Preg Replace,我有这个字符串: $str = 'সাংবাদিক<p>দলীয় সূত্রে</p>' .'<img width="600" src="img/1.jpg">বিলুপ্ত হওয়া পাবনা' .'বিলুপ্ত হওয়া পাবনা<img width="600" src="img/1.jpg">' .'বিলুপ্ত হওয়া পাবনা<img width="600" src="img/1.jp

我有这个字符串:

$str = 'সাংবাদিক<p>দলীয় সূত্রে</p>'
      .'<img width="600" src="img/1.jpg">বিলুপ্ত হওয়া পাবনা'
      .'বিলুপ্ত হওয়া পাবনা<img width="600" src="img/1.jpg">'
      .'বিলুপ্ত হওয়া পাবনা<img width="600" src="img/1.jpg">বিলুপ্ত হওয়া পাবনা'
      .'<p>শাহজাদপুর </p>';
$str='1〕সাংবাদিকদলীয় সূত্রে

" .'বিলুপ্ত হওয়া পাবনা' .'বিলুপ্ত হওয়া পাবনা' .'বিলুপ্ত হওয়া পাবনাবিলুপ্ত হওয়া পাবনা' “শাহজাদপুর

",;
我想变成:

$str = '<p>সাংবাদিক</p><p>দলীয় সূত্রে</p>'
          .'<img width="600" src="img/1.jpg"><p>বিলুপ্ত হওয়া পাবনা</p>'
          .'<p>বিলুপ্ত হওয়া পাবনা</p><img width="600" src="img/1.jpg">'
          .'<p>বিলুপ্ত হওয়া পাবনা</p><img width="600" src="img/1.jpg"><p>বিলুপ্ত হওয়া পাবনা</p>'
          .'<p>শাহজাদপুর </p>';
$str='সাংবাদিক

দলীয় সূত্রে

" “বিলুপ্ত হওয়া পাবনা

" “বিলুপ্ত হওয়া পাবনা

" “বিলুপ্ত হওয়া পাবনা

বিলুপ্ত হওয়া পাবনা

" “শাহজাদপুর

",;
我试过正则表达式

$str = preg_replace('/^(?!<p>).*(?!<\/p>)/m', '<p>$0</p>', $str);
$str=preg_replace('/^(?!).*(!/m','$0

',$str);

但是做得不好。请帮助

这不是regex的工作,而是DOMDocument的工作。由于您使用的是html部分而不是整个html文档,因此需要将字符串包装到基本的html框架中,以避免自动更正带来的意外,并提供文档编码:

$str = 'সাংবাদিক<p>দলীয় সূত্রে</p>'
      .'<img width="600" src="img/1.jpg">বিলুপ্ত হওয়া পাবনা'
      .'বিলুপ্ত হওয়া পাবনা<img width="600" src="img/1.jpg">'
      .'বিলুপ্ত হওয়া পাবনা<img width="600" src="img/1.jpg">বিলুপ্ত হওয়া পাবনা'
      .'<p>শাহজাদপুর </p>';

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML('<html><head><meta charset="UTF-8" /></head><body>' . $str . '</body></html>');

$bodyNode = $dom->getElementsByTagName('body')->item(0);
$result = '';
foreach ($bodyNode->childNodes as $childNode) {
    $result .= ($childNode->nodeType === XML_TEXT_NODE)
        ? '<p>' . $dom->saveHTML($childNode) . '</p>'
        : $dom->saveHTML($childNode);
}

echo $result;
$str='1〕সাংবাদিকদলীয় সূত্রে

" .'বিলুপ্ত হওয়া পাবনা' .'বিলুপ্ত হওয়া পাবনা' .'বিলুপ্ত হওয়া পাবনাবিলুপ্ত হওয়া পাবনা' “শাহজাদপুর

",; $dom=新的DOMDocument; libxml\u使用\u内部错误(true); $dom->loadHTML('.$str'); $bodyNode=$dom->getElementsByTagName('body')->项(0); $result=''; foreach($bodyNode->childNodes作为$childNode){ $result.=($childNode->nodeType===XML\u TEXT\u节点) ?“”.$dom->saveHTML($childNode)。“

” :$dom->saveHTML($childNode); } 回声$结果;