我正在构建一个网络抓取工具,用于扫描从提交的网址中找到的链接中的链接,标题和元描述
我认为这个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);
答案 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()在没有描述时返回的内容。