0

すべてのリンクが正しくないことを除けば、正常に機能している別のサイトからコンテンツを取得しようとしています。

    include_once('../simple_html_dom.php');


    $page = file_get_html('http://www.website.com');


$ret = $page->find('div[id=header]');


echo $ret[0];

とにかく、完全なリンクを持つためにリンクを表示するすべてのリンクの代わりにありますか?pregreplaceを使用します。

   $ret[0] = preg_replace('@(http://([\w-.]+)+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?)@', 
       '<a href="$1">http://fullwebsitellink.com$1</a>', $ret[0]);

上記のようなものになると思いますが、わかりませんか?

ありがとう

4

1 に答える 1

3

あなたの質問は、リンクについて「間違っている」ことを実際には説明していませんが、私はあなたがこのようなものを持っていると推測しています:

<div id="header"><a href="/">Home</a> | <a href="/sitemap">Sitemap</a></div>

そして、それを別のサイトに埋め込みたいと考えています。そこでは、これらのリンクを次のようにドメイン名で完全に修飾する必要があります。

<div id="header"><a href="http://example.com/">Home</a> | <a href="http://example.com/sitemap">Sitemap</a></div>

これが事実であると仮定すると、必要な置換は非常に単純で、正規表現も必要ありません。「/」で始まるすべてのhref属性を検索し、ドメイン部分を追加します(「http://example.com」を使用します)。 )彼らを絶対にするために彼らの初めに:

$scraped_html = str_replace('href="/', 'href="http://example.com/', $scraped_html);
于 2012-08-24T14:49:28.193 に答える