【发布时间】:2015-12-14 17:19:35
【问题描述】:
代码:
$message = preg_replace("/<div style='background-color:#C0C8D0;width:95%;'>SMA Forráskód: <a href='' onclick='selectcode\\((.*)\\);return false;'>\\[ Mindet kijelol \\]<\\/a><\\/div><div id='(.*)' style=\"width:95%;max-width:95%;max-height: 500px; overflow:scroll;background-color: #FFFFFF;\"><pre class=\"sma\" style=\"font-family:monospace;font-size: 12px;\"><ol><li style=\"font-weight: normal; vertical-align:top;\"><div style=\"font: normal normal 1em\\/1\\.2em monospace; margin:0; padding:0; background:none; vertical-align:top;\">(.*)<\\/div><\\/li><\\/ol><\\/pre><\\/div>/", '[sma]<pre>$3</pre>[/sma]',$message);
它的工作,只有当帖子只有一行。我想使用多行:
示例: 现在我编辑这篇文章
->
[sma]Now i edit this post[/sma]
很好,而且我还有更多的台词: 示例:
line1
line2
line3
line4
line5
line6
这个输出:
[sma]line1line2line3line4line5line6[/sma]
我想要:
[sma]line1
line2
line3
line4
line5
line6
[/sma]
多行html输出:
<div style='background-color:#C0C8D0;width:95%;'>SMA Forráskód: <a href='' onclick='selectcode(93347);return false;'>[ Mindet kijelol ]</a></div><div id='93347' style="width:95%;max-width:95%;max-height: 500px; overflow:scroll;background-color: #FFFFFF;"><pre class="sma" style="font-family:monospace;font-size: 12px;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">line1</div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">line2</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">line3</div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">line4</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">line5</div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">line6</div></li></ol></pre></div>
【问题讨论】:
-
这个有点断章取义……好好解释一下你的要求
-
您需要使用
s修饰符,以便.扩展到换行符。您的“多行 html”都在这里一行,所以也许这不是问题?使用解析器可能会更好。 -
您可能想从另一个 stackoverflow 问题尝试此链接:stackoverflow.com/questions/2240348/…
-
使用 HTML 解析器。您遇到的问题是使用正则表达式处理 HTML 的第一大原因。
标签: php preg-replace html-parsing