php - 从链接列表下载网站图标
问题描述
我试图创建一个脚本来从链接列表中下载网站图标:
我的文件link_list.txt
如下所示:
stackoverflow.com
http://google.com
www.gmail.com
facebook.com
我正在使用以下库来检查和下载网站图标:
我的脚本目前如下所示:
<?php
require_once 'vendor/autoload.php';
use Vincepare\FaviconDownloader\FaviconDownloader;
$fh = fopen(dirname(__FILE__).DIRECTORY_SEPARATOR . 'link_list.txt','r');
while ($line = fgets($fh)) {
//if the url has not http:// add it
if(preg_match("@^http://@i",$line))
$line = preg_replace("@(http://)+@i",'http://',$line);
else
$line = 'http://'.$line;
echo('URL: ' . $line."\n");
$favicon = new FaviconDownloader($line);
if (!$favicon->icoExists) {
echo "No favicon for ".$favicon->url;
}
// get name of url
$parts = parse_url($line);
$path_parts = explode('.', isset($parts['host'])?$parts['host']:$parts['path']);
echo 'Filename: fav-'. $path_parts[0] .'.ico' . "\n";
$filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'fav-'. $path_parts[0] . '.ico';
file_put_contents($filename, $favicon->icoData);
echo "Saved to ".$filename."\n\n";
}
fclose($fh);
当我运行我的脚本时,我只能下载最后一个 favicon。在这个例子中,它只是 facebook:
有什么建议我的脚本有什么问题吗?
感谢您的回复!
更新
当var_dump($favicon)
我得到:
class Vincepare\FaviconDownloader\FaviconDownloader#2 (13) {
public $url =>
string(21) "http://www.gmail.com
"
public $pageUrl =>
NULL
public $siteUrl =>
NULL
public $icoUrl =>
NULL
public $icoType =>
NULL
public $findMethod =>
NULL
public $error =>
string(31) "Illegal characters found in URL"
public $icoExists =>
NULL
public $icoMd5 =>
NULL
public $icoData =>
NULL
public $debugInfo =>
array(1) {
'document_curl_errno' =>
int(3)
}
protected $httpProxy =>
NULL
protected $sslVerify =>
bool(true)
}
我猜下载者不喜欢\n
. 有什么建议可以解决这个问题吗?
解决方案
您是否尝试过打开图标,它们在那里,所以它可能会起作用。如果它不起作用,则可能是它尚未下载或已损坏。至于脚本,我不知道 PHP,所以我无法帮助你编写脚本。
推荐阅读
- python - 为什么我的打印语句没有在 else 下面运行?
- javascript - 在 React 中使用 querySelector
- javascript - 使用javascript更改多个图像的位置
- javascript - 当popper不适合视口时如何让popper显示滚动条?
- gstreamer - GStream Meson 安装不适用于 omx 插件
- typescript - 如何使用散景在graph3D(visjs)上获取onclick事件?
- asp.net - 按 ID 删除行在 Asp.net 核心 Web API + Angular 9 中不起作用
- c# - (统一)我如何修改速度以相对于某个方向而不是世界轴
- excel - 如果文本框值与 Excel VBA 中的单元格值匹配,如何更新行
- python - 如何旋转饼图中的百分比标签以匹配类别标签旋转?