在PHP如何用鏈接替換未鏈接的圖像?
我正在將大量的博客文章轉換爲更加移動友好的內容。由於這些博客帖子中似乎有很多大圖片,我想用一些正則表達式或其他東西去閱讀文章的HTML,並將當前沒有鏈接的圖像替換爲該圖像的鏈接。這將允許移動瀏覽器在沒有任何圖像的情況下顯示文章,但是鏈接到圖像的位置,從而縮小頁面下載大小。
另外,如果有人知道任何PHP類/功能,可以使格式化這些職位的工作更容易,請建議。
任何幫助將輝煌!
在PHP如何用鏈接替換未鏈接的圖像?
我正在將大量的博客文章轉換爲更加移動友好的內容。由於這些博客帖子中似乎有很多大圖片,我想用一些正則表達式或其他東西去閱讀文章的HTML,並將當前沒有鏈接的圖像替換爲該圖像的鏈接。這將允許移動瀏覽器在沒有任何圖像的情況下顯示文章,但是鏈接到圖像的位置,從而縮小頁面下載大小。
另外,如果有人知道任何PHP類/功能,可以使格式化這些職位的工作更容易,請建議。
任何幫助將輝煌!
要解析HTML,請使用HTML解析器。正則表達式不是解析HTML或XML文檔的正確工具。 PHP的DOM提供了loadHTML()函數。見http://in2.php.net/manual/en/domdocument.loadhtml.php。使用DOM的功能來訪問和修改img元素。
如何在JQuery而不是PHP中使用它。這樣,它將在不同的博客軟件中工作。
你可以做這樣的事情......
$(document).ready(function() {
$('#content img').each(function() {
var imageUrl = $(this).attr('src');
//* Now write codes to delete off the image and put in a link instead. :)
});
});
用正則表達式是這樣的:
$c = 0;
while(preg_match('/<img src="(.*?)">/', $html, $match) && $c++<100) {
$html = str_replace($match[0], '<a href="'.$match[1].'">Image '.$c.'</a>');
}
您還可以使用的preg_replace(保存環),但環可以很容易地擴展,例如使用圖像功能創建縮略圖。
*(相關)* [最佳方法解析HTML](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662) – Gordon
可能重複的[我怎麼能使用XPath和DOM來代替php中的節點/元素?](http://stackoverflow.com/questions/4614434/how-can-i-use-xpath-and-dom-to-replace-a-node-element -in-PHP) – Gordon