我有几行这样的代码
<p> <inset></p>
如果字符串在开头<p>
标记与其余标记之间可能有任意数量的空格或制表符(或无)。我需要更换这些,但我不能让它工作。
我认为这会做到,但它不起作用:
<p>[ \t]+<inset></p>
答案 0 :(得分:5)
试试这个:
$html = preg_replace('#(<p>)\s+(<inset></p>)#', '$1$2', $html);
答案 1 :(得分:1)
如果您想要对HTML进行真正的文本修剪,包括您可以遇到的所有内容,例如权利,评论,子元素和所有内容,您可以使用TextRangeTrimmer
和TextRange
:< / p>
$htmlFragment = '<p> <inset></p>';
$dom = new DOMDocument();
$dom->loadHTML($htmlFragment);
$parent = $dom->getElementsByTagName('body')->item(0);
if (!$parent)
{
throw new Exception('Parent element not found.');
}
$range = new TextRange($parent);
$trimmer = new TextRangeTrimmer($range);
$trimmer->ltrim();
// inner HTML (PHP >= 5.3.6)
foreach($parent->childNodes as $node)
{
echo $dom->saveHTML($node);
}
输出:
<p><inset></p>
我在这两个课程中都有一个要点:https://gist.github.com/1894360/(键盘v蛇已关闭)。
请参阅相关问题/答案:
答案 2 :(得分:-2)