ブロック内に表示するリンクテキストを含むいくつかのページ内のすべてのリンクを抽出します。私は正規表現を試しましたが、タグが修正パターンを持っていないので、正しい結果を得られません、彼らは様々な属性を持っています。私はPHPを使用します。すべてを抽出<a>コンテンツからタグ
どうすればいいですか?
ブロック内に表示するリンクテキストを含むいくつかのページ内のすべてのリンクを抽出します。私は正規表現を試しましたが、タグが修正パターンを持っていないので、正しい結果を得られません、彼らは様々な属性を持っています。私はPHPを使用します。すべてを抽出<a>コンテンツからタグ
どうすればいいですか?
が好き:DOMとgetElementsByTagNameの()を使用しておよそ
$doc = new DOMDocument();
$doc->loadHTML($string);
foreach($doc->getElementsByTagName('a') as $a) {
// do something with $a->textContent
}
ありがとうございます。私のコードに追加してこのエラーが表示されます::致命的なエラー:DOMElementクラスのオブジェクトを文字列に変換できませんでした –
loadHTML関数に渡すものは? $ stringはhtmlの内容である必要があります –
html.the問題は私が$ a-> textContentではないecho $でした。 –
あなたはPHP:DOMDocument::getElementsByTagNameを使用して、指定されたタグを取得して試すことができます。 page.html内部
<a href="#">link1</a>
<a href="#">link2</a>
<a href="#">link3</a>
、これはあなたのPHPコードは次のとおりです:ここでは一例である
<?php
$src = new DOMDocument('1.0', 'utf-8');
$src->formatOutput = true;
$src->preserveWhiteSpace = false;
$src->load('page.html');
$links = $src->getElementsByTagName('a');
?>
あなたは** **このために正規表現を使用する必要はありません。 – ThiefMaster