0

こんにちは、アレイを構築し、スクリプトを完成させる最終プロセスに入っています。

指定されたサイトの特定のリンクをスキャンする Web クローラーを構築しています。クローラーは、すべてのリンクを 1 つのページに保管してから、リンクが指定された別の配列 (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()は、要素が 1 つであろうと 100 個であろうと関係ありません。要素がゼロの場合、制御構造内のコードは実行されません。

于 2012-12-22T20:13:51.257 に答える