2011-10-24 11 views
1

PHPでリンクされていない画像をリンク先の画像に置き換えるにはどうすればよいですか?

私は多くのブログ投稿をモバイルフレンドリーなものに変換しています。これらのブログの投稿には大きな画像がたくさんあるようですので、記事のHTMLを参照したり、現在その画像にリンクされていない画像を置き換えるために、正規表現などを使用したいと思います。これにより、モバイルブラウザーは、イメージなしで記事を表示することができますが、イメージがページダウンロードサイズを縮小する場所のイメージへのリンクが表示されます。

また、これらの投稿の書式設定を容易にするPHPクラス/関数を知っている人は、お勧めします。

どのようなヘルプも素晴らしいでしょう!

+0

*(関連)* [HTMLを解析するベスト方法](http://stackoverflow.com/questions/3577641/best-methods-to-parse-html/3577662#3577662)[どのようにすることができますの – Gordon

+0

可能重複XPathとDOMを使ってPHPのノード/要素を置き換えますか?](http://stackoverflow.com/questions/4614434/how-can-i-use-xpath-and-dom-to-replace-a-node-element -in-php) – Gordon

答えて

0

HTMLを解析するには、HTMLパーサーを使用します。正規表現は、HTMLやXML文書を解析するのに適切なツールではありません。 PHPのDOMはloadHTML()関数を提供します。 http://in2.php.net/manual/en/domdocument.loadhtml.phpを参照してください。 img要素にアクセスして変更するには、DOMの関数を使用します。

0

PHPの代わりにJQueryで行うのはいかがですか。そうすれば、それは別のブログソフトウェアで動作します。あなたが好きな何かを行うことができます

...このような正規表現の何かを

$(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. :) 
    }); 
}); 
0

$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は(ループが保存されます)が、ループは簡単に拡張することができます、例えば画像機能を使用してサムネイルを作成します。

関連する問題