-1

重複の可能性:
A 要素の href 属性を取得する

Web ページ (私のもの) からすべての href リンクを抽出する php スクリプトを作成したいと思いますが、文字列に「/view/」を含むリンクのみを抽出します。

http://www.example.com/roger/that => 抽出されていません

http://www.example.com/roger/view/that => 抽出

可能であれば、すべてのリンクが配列に設定されます

したがって、基本的にスクリプトは私の管理セクションにあり、それを実行して、特定の文字列 '/view/' を含むすべてのリンクを配列に取得し、後で別のスクリプトで使用します。

調査を行ったところ、このスクリプトを見つけましたが、特定のリンク (「/view/」を使用) のみを含めるように変更することはできません。

あなたたちが私の奴隷ではないことはわかっているので、既存のスクリプトを変更するためのヒントがあれば、私は幸せです!

私のスクリプト http://pastebin.com/gYf9DZ8i

ありがとう !

4

3 に答える 3

1

file_get_contentsを使用してページのコンテンツを取得します。

$input = file_get_contents("http://www.yourpage.php");

次にpreg_matchを実行して、必要なリンクのセットを抽出します。

正規表現: /\<a href(.*?\/view\/.*?)<\/a>/

$pattern = '/\<a href(.*?\/view\/.*?)<\/a>/';
preg_match_all($pattern, $input, $matches);
print_r($matches);

于 2012-10-27T16:20:09.397 に答える
0
$var = file_get_contents("http://www.entendu.info");

preg_match_all ("/<a\s+[^>]*?\bhref\s*=\s*([\'\"])(?=[^\'\"]*\/view\/)(.*?)[\'\"]/", 
  $var, &$matches);    

$matches = $matches[2];

foreach($matches as $var)
{    
  print($var . "<br>\n");
}
于 2012-10-27T16:38:24.440 に答える
0

これを変更するだけです:

preg_match_all ("/a[\s]+[^>]*?href[\s]?=[\s\"\']+".
                "(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",
                $var, &$matches);

これに

preg_match_all ("/<a.*href=\"([^\"]*\/view\/[^"]*)\"/", $var, &$matches);
于 2012-10-27T16:26:50.470 に答える