可能重複:
Best methods to parse HTML with PHPpreg_replace函數圖像內的風格
對於一個網站,我有一個字符串不知道什麼文本或圖像線條就會出現在其中。 我想創建圖像內部樣式的替代品。不知道""
之間會有什麼風格,整個style=""
必須刪除 。
什麼是我需要替換的模式。
可能重複:
Best methods to parse HTML with PHPpreg_replace函數圖像內的風格
對於一個網站,我有一個字符串不知道什麼文本或圖像線條就會出現在其中。 我想創建圖像內部樣式的替代品。不知道""
之間會有什麼風格,整個style=""
必須刪除 。
什麼是我需要替換的模式。
對此使用正則表達式是一個壞主意,因爲HTML解析器將更加健壯。如果樣式屬性始終將是相似的,只是微小的變化,那麼你可以使用以下方法來改變它:
$yourStyle = 'style="your-style-goes-here"';
$newString = preg_replace('%style="(.*?)"%is', $yourStyle, $string);
如果你只是想刪除的樣式屬性完全,然後設置$yourStyle = '';
再次強調,這不是最好的方式,但它可以工作,假設在樣式的中間不會有引號,並且樣式屬性以引號結尾。
像這樣的東西應該有所幫助:
$data = array(
'<img src="hello/test.png" />',
'<img src="hello/test.png"/>',
'<img src="hello/test.png">',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" border="0" />',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" border="0"/>',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" border="0">',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" />',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black"/>',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black">',
'<img style="blabla; background-color: #98473; border: 1px solid black" src="mama" />',
'<img style="blabla; background-color: #98473; border: 1px solid black" src="mama"/>',
'<img style="blabla; background-color: #98473; border: 1px solid black" src="mama">',
);
foreach($data as $texttosearch){
echo htmlentities($texttosearch).' => '.htmlentities(preg_replace('/(<img .*?)(style=("|\').*?("|\'))(.*?(\/?)>)/i', '$1$5', $texttosearch)).'<br />';
}
這應有助於:
/(?:style=")(?:[\w\-\:\;\s\%\#]+)(?:\")/i
它會剝奪多數風格從任何標籤的屬性。您可以將它放在一個功能中,並將其供給您要檢查/替換的零件
您的問題是什麼? –
使用DOM解析器。 – webbiedave
我只想知道我需要什麼樣的模式才能完成這項工作:) – directory