用 HTML 标记替换多个“ ”
Replace multiple ' ' with HTML tag
今天处理一个奇怪的问题 - 客户将把一大堆文本粘贴到 HTML 编辑器中,该编辑器会添加许多不间断的空格。我需要在输出到浏览器时设置样式。
我正在尝试制作以下字符串
<ul class="columns">
<li><u>Running costs</u></li>
<li>Urban mpg 50.4 mpg</li>
<li>Extra Urban mpg 72.4 mpg</li>
</ul>
改为:
<ul class="columns">
<li><u>Running costs</u></li>
<li>Urban mpg<span class="right">50.4 mpg</span></li>
<li>Extra Urban mpg<span class="right">72.4 mpg</span></li>
</ul>
使用 preg 替换或 HTML 解析器。我都试过了。我的 PHP preg_replace 是这样的:
preg_replace("/( )/", "<span>", $input_lines);
将所有 &nspb; 替换为 .我只想添加一个跨度,我也需要在最后关闭它。我一直在尝试使用 Simple HTML Dom 但不确定要使用什么函数才能最好地实现这一点。
谢谢
您可以使用 css 选择器,您需要转义的 unicode 值。
span.right::before {
content: "[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0";
}
你可以试试
(?: )+([^<]*)
替换为
<span class="right"></span>
它匹配所有重复的
,然后抓取结束标记 <
之前的所有内容。用上面的字符串替换它会插入带有周围 span
.
的捕获
这应该有效。
<?php
$text = '<ul class="columns">
<li><u>Running costs</u></li>
<li>Urban mpg 50.4 mpg</li>
<li>Extra Urban mpg 72.4 mpg</li>
</ul>';
$new_text = preg_replace("/(?: )+([^<]*)/", " <span class=\"right\">${1}</span>", $text);
echo $new_text;
试试这个
<?php
$text = "<ul class='columns'>
<li><u>Running costs</u></li>
<li>Urban mpg 50.4 mpg</li>
<li>Extra Urban mpg 72.4 mpg</li>
</ul>";
echo $text;
$pattern = '/( )+([\w\.\s]+)(<\/li>)/';
$text = preg_replace($pattern,'<span class="name"></span>', $text);
echo htmlspecialchars($text);
?>
今天处理一个奇怪的问题 - 客户将把一大堆文本粘贴到 HTML 编辑器中,该编辑器会添加许多不间断的空格。我需要在输出到浏览器时设置样式。
我正在尝试制作以下字符串
<ul class="columns">
<li><u>Running costs</u></li>
<li>Urban mpg 50.4 mpg</li>
<li>Extra Urban mpg 72.4 mpg</li>
</ul>
改为:
<ul class="columns">
<li><u>Running costs</u></li>
<li>Urban mpg<span class="right">50.4 mpg</span></li>
<li>Extra Urban mpg<span class="right">72.4 mpg</span></li>
</ul>
使用 preg 替换或 HTML 解析器。我都试过了。我的 PHP preg_replace 是这样的:
preg_replace("/( )/", "<span>", $input_lines);
将所有 &nspb; 替换为 .我只想添加一个跨度,我也需要在最后关闭它。我一直在尝试使用 Simple HTML Dom 但不确定要使用什么函数才能最好地实现这一点。
谢谢
您可以使用 css 选择器,您需要转义的 unicode 值。
span.right::before {
content: "[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0[=10=]a0";
}
你可以试试
(?: )+([^<]*)
替换为
<span class="right"></span>
它匹配所有重复的
,然后抓取结束标记 <
之前的所有内容。用上面的字符串替换它会插入带有周围 span
.
这应该有效。
<?php
$text = '<ul class="columns">
<li><u>Running costs</u></li>
<li>Urban mpg 50.4 mpg</li>
<li>Extra Urban mpg 72.4 mpg</li>
</ul>';
$new_text = preg_replace("/(?: )+([^<]*)/", " <span class=\"right\">${1}</span>", $text);
echo $new_text;
试试这个
<?php
$text = "<ul class='columns'>
<li><u>Running costs</u></li>
<li>Urban mpg 50.4 mpg</li>
<li>Extra Urban mpg 72.4 mpg</li>
</ul>";
echo $text;
$pattern = '/( )+([\w\.\s]+)(<\/li>)/';
$text = preg_replace($pattern,'<span class="name"></span>', $text);
echo htmlspecialchars($text);
?>