相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)

但不是这些:

<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)

我想出了这个,并希望确保我做对了.我只抓住了a-z.

<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

使用PHP substr()和strip_tags()同时保留格式并且不破坏HTML

我有各种HTML字符串,可以剪切到100个字符(剥离的内容,而不是原始的),无需剥离标记,也不会破坏HTML.

原始HTML字符串(288个字符):

$content = "<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div over <div class='nestedDivClass'>there</div>
</div> and a lot of other nested <strong><em>texts</em> and tags in the air
<span>everywhere</span>, it's a HTML taggy kind of day.</strong></div>";
Run Code Online (Sandbox Code Playgroud)

标准修剪:修剪到100个字符和HTML中断,剥离的内容达到~40个字符:

$content = substr($content, 0, 100)."..."; /* output:
<div>With a <span class='spanClass'>span over here</span> and a
<div class='divClass'>nested div ove... */
Run Code Online (Sandbox Code Playgroud)

剥离的HTML:输出正确的字符数,但显然会丢失格式:

$content = substr(strip_tags($content)), 0, 100)."..."; /* output:
With a span over here and a nested div …
Run Code Online (Sandbox Code Playgroud)

html php substr strip-tags

41
推荐指数
5
解决办法
3万
查看次数

将DOMDocument中的特定元素导出为字符串

我正在DOMDocument使用该loadHTML()函数导入一些任意HTML ,例如:

$html = '<p><a href="test.php">Test</a></p>';
$doc = new DOMDocument;
$doc->loadHTML($html);
Run Code Online (Sandbox Code Playgroud)

然后我想使用DOMDocument我没有问题的方法更改一些属性/节点值.

一旦我做了这些更改,我就想导出HTML字符串(使用->saveHTML()),而不会自动添加到HTML中的<html><body>...标记DOMDocument.

我理解为什么要添加这些(以确保有效的文档),但是我如何才能将我编辑的HTML(特别是<body>标签之间的所有内容)都用到了?

我已阅读这篇文章,虽然它提供了一些解决方案,但我宁愿"正确"这样做,即不在<body>标签上使用字符串替换.HTML的有效性不是问题,因为它预先通过HTML净化器运行.

有任何想法吗?谢谢.

编辑

我知道在PHP 5.3.6中$node添加了参数saveHTML(),不幸的是我坚持使用5.2.

html php domdocument

8
推荐指数
1
解决办法
3787
查看次数

标签 统计

html ×3

php ×2

domdocument ×1

regex ×1

strip-tags ×1

substr ×1

xhtml ×1