2012-01-22 12 views
0

現在、別のサイトから特定の要素を取得し、その内容をPHPを使用して自分のコンテンツに置き換える方法が必要です。PHPを使用してHTML要素の内容を動的に置き換えます。

ウェブサイトは、私はこの情報をつかむことができ、かつ交換する必要が次の表とdivの

<div>Div Contents!</div> 

    <table> 
     <tr> 
     <td>Table Column 1</td> 
     <td>Table Column 2</td> 
     </tr> 
    </table> 

含まれているページがある場合は、「事業部の内容を!」、「表の列1」、および "テーブルの列2 "私の自身のデータで。

これを行うにはどうすればよいでしょうか?正規表現またはstrpos/str_replace/SUBSTRなど

私はあなたが提供する任意のヘルプや例を感謝しています。

+0

そのサイトの所有者は、自分の情報を使用していることを知っていますか? – zerkms

+0

HTML/XMLパーサー(または少なくともregexp)が必要です。 –

+0

@zarkmsはいそれは友人システムです。 – user826855

答えて

0
  1. cURL
  2. 解析して、他のページのHTMLを取得し、修正する - this questionを参照してください。ほとんどの場合、XMLReaderまたはDOMのようなネイティブPHPライブラリを使用したいと思うでしょう。
  3. から望ましい形式で出力データ、必要なデータを抽出するために正規表現(preg_match())または文字列の一連の操作を使用して、リモートソースを形成するHTMLコンテンツをつかむためにHTML
1

cURLを使用した表示解析中に割り当てられた変数

は理想的な正規表現の構築およびテストするためにはるかに高速になりますが、strpos/SUBSTRコンボもトリックを行うことができます。

*私は

+0

*印象的ではありません。 :) – Christian

+0

誰が言っていた:\これはずっと前だった。しかし、理論的に仮定するのではなく、最速の方法が何であるかを知るための経験を必要とします。 –

+0

まあ、理論と実践の両方では、HTMLで正規表現を使うべきではないと言っています:) – Christian

0
// read URL into dom document 
$doc = domxml_open_file('http://domain.com/test.php'); 
// replace content of div 
$els = $doc->getElementsByTagName('div'); 
$els[0]->set_content('new content'); 
// replace content of tds 
$els = $doc->getElementsByTagName('td'); 
$els[0]->set_content('new content'); 
$els[1]->set_content('new content'); 
// echo the final output 
echo $doc->saveXML(); 

ノート

  • 上記のコードはCURLを使用せずに、直接のURLで動作するはずの前にデータ・マイニング・プログラムを構築しました。
  • 値を変更するための直接的なアプローチを使用しました(上記の構造が真であると仮定します)。代わりにループを使用する必要があります。
関連する問題