我想提出一個腳本,用於將某些特定的標記,以已知的和有效的HTML像轉換簡單的代碼的HTML樣式
[b] bold [/b] for <span style="font-weight:bold"> bold</span>
[color=red] red text [/color] for <span style="font-color:red"> red</span>
[fs=15]big font[/fs] for <span style="font-size:15px"> big font</font>
and [link=http://www.gooole.com target=new title=goole] google[/link] to be converted to
<a href="http://www.gooole.com" title="goole">google</a>
,也可以像它們混合的[fs = 15],這是很大的。 [顏色=紅色]紅色文本[/彩色] [/ FS]
下面是代碼,我used-
$str = preg_replace('/\[b\]/', '<span style="font-weight:bold">', $str);
$str =preg_replace('/\[\/b\]/', '</span>', $str);
$str= preg_replace('/\[\/fs\]/', '</span>', $str);
$str= preg_replace('/\[fs=(.*)\]/', '<span style="font-size:$1px">', $str);
$str= preg_replace('/\[\/color\]/', '</span>', $str);
$str= preg_replace('/\[color=(.*)\]/', '<span style="font-color:$1">', $str);
此代碼工作正常,如果使用未嵌套,並也適用於嵌套如果標籤唐沒有=屬性。出現問題時,我使用這樣的
[fs=15] this is big. [fs=12] this is big. [/fs] [/fs]
它給我
<span style="font-size:15] this is big. [fs=12px"> this is big. </span> </span>
,而應該是
<span style="font-size:15px> this is big. <span style="font-size:12px> this is big. </span> </span>
其工作罰款
[b] hi [i] ok [/i] yes [/b]
請建議我不知道經常性的前夫壓力。
使用非貪婪匹配:'' – hjpotter92 2014-11-06 20:21:11
@ hjpotter92請參閱我編輯的問題(你的代碼是工作的罰款感謝,但我還需要一個(*?)。步!) – 2014-11-06 20:29:51
是否有可能只用一個preg_replace替換所有代碼,因爲我已經多次使用它了? – 2014-11-06 20:32:42