PHP 对前一个 file_get_contents 的数据执行多个 file_get_contents

发布于 2024-12-29 19:40:01 字数 852 浏览 0 评论 0原文

我找到了这段代码来检查 URL 上的链接。

<?php
$url = "http://example.com";
$input = @file_get_contents($url);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
@$dom->loadHTML($input);
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
   if ($link->hasAttribute('href')) {
      $href = $link->getAttribute('href');
      if (stripos($href, 'shows') !== false) {
         echo "<p>http://example.com" . $href . "</p>\n";
      }
   }
}

?>

效果很好,它显示了所有包含“显示”的链接。 例如,上面的脚本找到 3 个链接,所以我得到:

<p>http://example.com/shows/Link1</p>
<p>http://example.com/shows/Link2</p>
<p>http://example.com/shows/Link3</p>

现在我尝试做的事情是检查我刚刚获取的那些 url 是否也包含包含“shows”的链接。

老实说,我是一个 php 菜鸟,所以我不知道从哪里开始:(

问候, 巴特

I found this code to check for links on an URL.

<?php
$url = "http://example.com";
$input = @file_get_contents($url);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
@$dom->loadHTML($input);
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
   if ($link->hasAttribute('href')) {
      $href = $link->getAttribute('href');
      if (stripos($href, 'shows') !== false) {
         echo "<p>http://example.com" . $href . "</p>\n";
      }
   }
}

?>

Works good, it shows all the links that contains 'shows'.
For example the script above find 3 links, so i get:

<p>http://example.com/shows/Link1</p>
<p>http://example.com/shows/Link2</p>
<p>http://example.com/shows/Link3</p>

Now the thing i try to do is to check those urls i just fetched also for links that contains 'shows'.

To be honest i'm a php noob, so i don't know where to start :(

Regards,
Bart

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哆啦不做梦 2025-01-05 19:40:01

类似于:

function checklinks($url){
$input = @file_get_contents($url);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
@$dom->loadHTML($input);
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
   if ($link->hasAttribute('href')) {
      $href = $link->getAttribute('href');
      if (stripos($href, 'shows') !== false) {
         echo "<p>" . $url . "/" . $href . "</p>\n";
         checklinks($url . "/" . $href);
      }
   }
}
}

$url = "http://example.com";
checklinks($url);

使其递归 - 在函数本身中再次调用该函数。

Something like:

function checklinks($url){
$input = @file_get_contents($url);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
@$dom->loadHTML($input);
$links = $dom->getElementsByTagName('a');
foreach($links as $link) {
   if ($link->hasAttribute('href')) {
      $href = $link->getAttribute('href');
      if (stripos($href, 'shows') !== false) {
         echo "<p>" . $url . "/" . $href . "</p>\n";
         checklinks($url . "/" . $href);
      }
   }
}
}

$url = "http://example.com";
checklinks($url);

Make it recursive - call the function again in the function itself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文