1

PHP を使用してプロキシ サーバーを作成しています。リンク (相対リンクと絶対リンクの両方) を絶対 URL に変換し、リンクを変更して Web サイト上の場所に移動できるかどうか疑問に思っていました。説明するのは難しいですが、これは本質的に私が欲しいものです

<html>
<body>
 <a href='http://www.google.com'>This is a link</a><br><br>
 <a href='/index.php'>This is another</a><br>
 <form action='/act.php'>
   <input type='submit'>
 </form>

どちらを使用しますか

file_get_contents("http://www.thiswebsite.com")

意図した出力は次のようになります

     <html>
<body>
 <a href='proxy.php?url=http://www.google.com'>This is a link</a><br><br>
 <a href='proxy.php?url=http://www.thiswebsite.com/index.php'>This is another</a><br>
 <form action='proxy.php?url=http://www.thiswebsite.com/act.php'>
   <input type='submit'>
 </form>

ありがとう

4

1 に答える 1

3

PHP DOMDocument API を使用してみることができます。次のように記述します。

<?php
$document = file_get_contents("http://www.thiswebsite.com");
$doc = new DOMDocument();
$doc->loadHTML($document);

$xpath = new DOMXpath($doc);
$anchors = $xpath->query("//a[@href]");
foreach( $anchors as $anchor) {
    $href = $anchor->getAttribute("href");
    $your_site_prefix = "proxy.php?url=";
    $anchor->setAttribute("href", $your_site_prefix . $href);
}

echo $xpath->document->saveHTML();
?>
于 2013-01-28T16:50:51.630 に答える