0

送信された 1 つの URL から見つかったリンクから、リンク、タイトル、メタ記述をスキャンする Web クローラーを構築しています。

このifステートメントは正しいと思います。$description は、配列 $link からのすべての説明を保持する変数です。しかし、すべてのサイトにメタ ディスクリプション (ウィキペディアなど) があるわけではないことに気付いたので、説明が空の場合は最初の 20 文字を説明として使用することにしました。(ちなみに、すべての関数と呼び出しが機能します。それを見てほしかっただけです)

     if ($description == '') {
    $html = file_get_contents($link);    
    preg_match('%(<p[^>]*>.*?</p>)%i', $html, $re);
    $res = get_custom_excerpt($re[1]);
    echo "\n";
    echo $res;
    echo "\n";

    }

ただし、配列では、リンクは [link] に、リンクのタイトルは [title] に、説明は [description] に格納されます。しかし、配列に $res を追加する方法と、if ステートメントが機能する場合にのみ使用する方法がわかりません。

$output = Array();

   foreach ($links as $thisLink) {
   $output[] = array("link" => $thisLink, "title" => Titles($thisLink), "description" => getMetas($thisLink), getMetas($res));
     } 
    print_r($output);
4

2 に答える 2

0

あなたの言葉遣いから、私はあなたがこれをしたいと思います:

$outputs = array();

foreach ($links as $thisLink) {
    $output = array("link" => $thisLink, "title" => Titles($thisLink), "description" => getMetas($thisLink));

    if ($output['description'] == null) {
        $output['description'] = getMetas($res);
    }

    $outputs[] = $output;
}

記述がない場合に getMetas() が何を返すかわからないため、if ステートメントを調整する必要があるかもしれません。

于 2012-09-24T18:35:01.827 に答える
0

array_push() を使用して $res を配列に追加し直し、必要に応じて配列を評価できます。あなたが何をしようとしているのか100%確信が持てません...

于 2012-09-24T18:25:44.737 に答える