プロジェクトの場合は、ウェブサイトのコンテンツを取得してHTMLコードを変更する必要があります。そのウェブサイトのすべてのリンクを自分のものに置き換える必要があります。私はを使用しました。リンクには時々クラスが割り当てられていることがわかりました。preg_replaceすべてのハイパーリンクの前に自分のウェブサイトを追加する
私はpreg_replace
機能を試して、毎hrefリンクの前に自分のウェブサイトを追加しました。これは<a>
</a>
タグの間にもあります。 の取得したウェブサイトにhref=""
またはhref=''
が含まれているかどうかは関係ありません。
$content = preg_replace('~(<a\b[^>]*\shref=")([^"]*)(")~igs', '\1http://website.com/fetch.php?url=\2\3', $content);
これは動作せず、エラーが見つかりません。これは次のように振る舞う必要があります。
<a class="link" href="http://google.com">Google</a>
は
<a class="link" href="http://website.com/fetch.php?url=http://google.com">Google</a>
に有効にする必要があり、誰かが私にエラーを見つけることができますか?前もって感謝します。
は、正規表現を使用しないでください、あなたは 'str_replace'で見つかった同様の問題に遭遇しますが。パーサーを使用します。また、 'preg_replace_callback'を必要としない関数を使用しない場合、' preg_replace'が置き換えられます。また、 'g'修飾子もPHPにはありません。関数はグローバルです。 – chris85
置換文字列に '$ 1'、' $ 2'などを使用することをお勧めします。 – Barmar
[PHPでHTML/XMLをどのように解析して処理するのですか?](http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php ) – chris85