不同的数组值取决于if语句

时间:2012-09-24 18:17:12

标签: php

我正在构建一个网络抓取工具,用于扫描从提交的网址中找到的链接中的链接,标题和元描述

我认为这个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);

2 个答案:

答案 0 :(得分:0)

您可以使用array_push()将$ res添加回您的数组,然后根据需要评估该数组;不是100%肯定你要做的...

答案 1 :(得分: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;
}

您可能想要调整if语句,因为我不知道getMetas()在没有描述时返回的内容。