我試圖從HTML元素中刪除標題屬性。PHP preg_replace匹配HTML屬性
function remove_title_attributes($input) {
return remove_html_attribute('title', $input);
}
/**
* To remove an attribute from an html tag
* @param string $attr the attribute
* @param string $str the html
*/
function remove_html_attribute($attr, $str){
return preg_replace('/\s*'.$attr.'\s*=\s*(["\']).*?\1/', '', $str);
}
但是,它不能告訴<img title="something">
和[shortcode title="something"]
之間的差異。我如何只定位HTML代碼中的代碼(例如<img>
或<a href=""><a>
)?
使用HTML解析器,而不是正則表達式函數。 – 2013-03-06 16:29:28
**不要使用正則表達式來解析HTML **。您無法可靠地使用正則表達式解析HTML。只要HTML從你的期望改變,你的代碼就會被破壞。有關如何使用PHP模塊正確解析HTML的示例,請參閱http://htmlparsing.com/php.html。 – 2013-03-06 16:30:02
[How to parse and process HTML/XML with PHP?](http://stackoverflow.com/questions/3577641/how-to-parse-and-process-html-xml-with-php) – Quentin 2013-03-06 16:43:37