2015-11-03 53 views
0

假設我有一個HTML文件中下面的文字叫index.html如何使用的preg_replace刪除HTML標籤和屬性,但保留中的一些內容

<FONT FACE="Times New Roman, serif"> 
    <FONT SIZE=3> 
    <SPAN STYLE="background: transparent"> 
     This is my text and it spans lines 
     within a text file 
     like this. 
    </SPAN> 
    </FONT> 
</FONT> 

我要剝去FONT標籤和字體屬性,一起與 FONT關閉標籤,但維持兩者之間的所有,並輸出到 文件output.html

我寫的,我想會做一個簡短的PHP程序,但它不是 找到模式字符串:

$pattern = '<FONT FACE="Times New Roman, serif"><FONT SIZE=3>((.|\n)*)</FONT></FONT>'; 
$replacement = '\1'; 
file_put_contents('./output.html', preg_replace($pattern, $replacement, 
        file_get_contents('./index.html', FILE_USE_INCLUDE_PATH))); 

的模式沒有被發現。任何人都可以及時發現和處理代碼的問題嗎?

我使用>((.|\n)*)來捕獲所有字符,無論是否爲 換行符。

+0

我也嘗試設置$替換爲$ 1,同樣的問題。 –

+0

我的正則表達式正在工作 –

回答

0
preg_replace('~<font[^>]*face=\"Times\s+New\s+Roman\s*\,\s*serif\"[^>]*>\s*<font[^>]*size=\'?3\"?[^>]*>(.*?)<\/font>~is', '\1', YOUR_STRING); 
+0

謝謝,但與此問題是,它將取代我所有的字體出現,我只想要取代那些有時代新羅馬,襯線字體大小= 3。 –

+0

我修改了正則表達式,你想要的。 –

+1

的解釋是很好的答案和次優答案之間的區別... –

相關問題