0

嗨,我已经建立了一个数组,并在完成脚本的最后过程中。

我一直在构建一个网络爬虫,它扫描指定站点上的特定链接。爬虫将所有链接存储在一个页面中,然后将它们插入到另一个数组(news_stories)中,其中包含指定的链接。

现在新数组的结构方式是这样的。

 Array
 (
    [0] => Array
    (
        [title] =>  The Qlick 
        [description] => Qlick
        [keywords] => Search Engine, Web, Sexy, Noah Smith
        [link] => http://www.theqlick.com/qlickdates.php
    )
  )

这对我来说很难内爆并插入到 mysql 表中。现在我下面的代码使用函数来获取它找到的每个链接的标题、描述等,然后如果它们匹配则将它们插入到新数组中。

无论如何要让这个删除数组顶部的 Array() 并只拥有指定标题、描述等的数组。我希望输出看起来像:

    [0] => Array
    (
        [title] =>  The Qlick 
        [description] => Qlick
        [keywords] => Search Engine, Web, Sexy, Noah Smith
        [link] => http://www.theqlick.com/qlickdates.php
    )

有任何想法吗?

  $bbc_values = array('http://www.theqlick.com/festivalfreaks.php', 'http://www.theqlick.com/qlickdates.php');

  $news_stories = array();
  foreach ($links as $link) {
      $item = array(
        "title"       => Titles($link), 
        "description" => getMetas($link),
        "keywords" => getKeywords($link), 
        "link"        => $link                 
       );

      if (empty($item["description"])) {
          $item["description"] = getWord($link);
      }


      foreach($bbc_values as $bbc_value) {
          // note the '===' . this is important
          if(strpos($item['link'], $bbc_value) === 0) {
              $news_stories[] = $item;
          }
      }
   }

   $data = '"' . implode('" , "', $news_stories) . '"';
   $query = 
   //CNN algorithm
   print_r($news_stories);
4

1 回答 1

0

PHP foreach()是一个迭代器,旨在让您的编程对数据集合执行相同的操作。在现有设计中,*$news_stories* 数组可以包含多个单独的“子数组”,每个这样的“子数组”都是您要插入数据库的数据单元。

当您深入了解创建查询的部分时,您可以使用以下内容:

foreach ($news_stories as $story)
{
    /* CREATE AND RUN QUERY USING DATA IN $story */
}

您可以使用 *var_dump()* 查看$story数组的内容。当你这样做时,它可能会立即变得有意义。PHP foreach()不关心你有一个元素还是一百个元素。如果您有零个元素,它将不会运行控制结构内的代码。

于 2012-12-22T20:13:51.257 回答