對於我的客戶,我編寫了一個基於Web的所見即所得HTML編輯器。它允許他們格式化基本的HTML文本並插入圖像。當他們插入圖像我插入他們像##image1##
模式。產生的HTML可以是這樣的:用PHP替換HTML文本中的字符串模式
<p>some text and some more text</p>
<p>some text and some <b>bold text</b></p>
<div>##image1##</div>
<p>more text can follow here</p>
<div>##image2##</div>
當郊遊這個HTML我尋找低谷,並與HTML標記實際顯示圖像替換出現的圖像和更換##image1##
,##image2##
等。我的替換代碼在這裏:
// first find all occurrences of image string
preg_match_all('|##(.+)##|', $inputHTML, $matches);
for every match in $inputHTML
$output = preg_replace('|##(.+)##|', $imageHTML, $inputHTML, 1);
這將工作的時代,但在輸入HTML的一些變化將解析奇怪的結果。一個產生奇怪的結果,HTML是:
<div>##image1##</div><p class="align-justify"><strong>Peter Dekleva</strong>, <strong>Damir Lisica</strong>, <strong>Anej Kočevar</strong> in <strong>Gregor Jakac</strong> so glasbeniki, ki v svoji glasbi združujejo silovite instrumentalne vložke, markantne melodije in močna besedila.</p><div>##image2##</div><p class="align-justify">Video dvojček skladbe Brez strahu torej prikazuje oblico sproščenih trenutkov iz zaodrja, veličasnih posnetkov s koncertnega dogajanja, priprav na nastope, nepredvidljive zaključke noči.</p>
如果我編輯HTML和<div>##image2##</div>
之前添加一行制動那麼它會分析它確定。任何想法這裏發生了什麼,爲什麼我有問題?
我也對此建議更好的方式。我可以插入別的東西##image1##
在我的所見即所得編輯器中插入圖像時...感謝
爲什麼不直接插入圖片HTML? – GolezTrol 2012-03-06 19:13:33
與[你的其他問題]不是這個問題(http://stackoverflow.com/questions/9432947/php-replacing-all-occurances-of-certain-string-pattern-in-html-formatted-text )? – 2012-03-06 19:16:16
由於孔應用程序的性質...很難解釋,但這是爲什麼不這樣做的原因! – 2012-03-06 19:16:24