cURL为不同的URL重复init

时间:2013-08-29 03:03:53

标签: php curl

假设我有100个网站的列表,我想抓住<标题>< / title>元标记。 我发现这个脚本工作正常,但我不知道如何重复新网站的整个过程:

<?php
    $ch = curl_init ("http://www.mywebsite.com");
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $page = curl_exec ($ch);
    echo $page;

    $file = 'title.txt';
    $regex = '/<title>(.*?)<\/title>/s';
    if ( preg_match($regex, $page, $list) )
    echo $list[1];
    else
    echo "Unable to find preg_match";
    file_put_contents($file, html_entity_decode($list[0]));
    ?>

为新网站重复整个curl_init的最佳方法是什么?

例如:

  1. 转到 - &gt; http://www.mywebsite.com
  2. 搜索标题标签
  3. 将标题插入title.txt
  4. 从列表中转到第2个网站 - &gt; http://www.mywebsite2.com
  5. Searcg for title tag
  6. 将标题插入title.txt
  7. 从列表中转到第3个网站 - &gt; http://www.mywebsite3.com
  8. etc erc。
  9. 此外,从PHP的角度来看,处理文件以供进一步使用的最佳方法是什么?我应该使用FILE_APPEND还是尝试在新文件中保存每个标题,例如mywebsite.com_title.txt,mywebsite2.com_title.txt等? 谢谢:))

1 个答案:

答案 0 :(得分:1)

因此,如果我正确理解您的问题,您希望在多个网站上运行您的代码。您可以将地址放在一个数组中,然后循环遍历该数组。我接受了你的代码并将其包装在下面的循环中。

<?php
$sites = array("http://www.mywebsite.com",
               "http://www.mywebsite2.com",
               "http://www.mywebsite3.com"
              );


    foreach ($sites as $site) {
      #$ch = curl_init ("http://www.mywebsite.com");
      $ch = curl_init ($site);
      curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
      $page = curl_exec ($ch);
      echo $page;

      $file = 'title.txt';
      $regex = '/<title>(.*?)<\/title>/s';
      if ( preg_match($regex, $page, $list) )
      echo $list[1];
      else
      echo "Unable to find preg_match";
      file_put_contents($file, html_entity_decode($list[0]));
    }
    ?>