marcelklehr / link-preview
支持Laravel的PHP链接预览生成器
v3.0.6
2022-02-27 11:43 UTC
Requires
- php: >=5.5.0
- illuminate/support: 5.4.*
- psr/http-client: ^1.0
- psr/http-message: ^1.0
- symfony/css-selector: ^3.0
- symfony/dom-crawler: ^3.0
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: 3.7.*
README
一个PHP类,它消耗一个HTTP(S)链接并返回一个包含预览信息的数组。想象一下Facebook分享——每次你粘贴链接时,它都会跳转到指定的页面并获取一些详细信息。
最初基于kasp3r/link-preview,该库看起来已被放弃。
这个分支特别之处在于它不带任何特定的HTTP实现,而是允许你注入一个PSR-17工厂和一个PSR-18客户端。这让你可以自由选择使用任何你喜欢的工具。
依赖关系
- PHP >= 7.0
- Symfony DomCrawler >= 3.0
通过Composer安装
要安装,只需运行
composer require dusterio/link-preview
或者手动添加到composer.json
{ "require": { "marcelklehr/link-preview": "~1.2" } }
直接使用
use Marcelklehr\LinkPreview\Client; $previewClient = new Client(/*your http implementation here*/); // Get previews from all available parsers $previews = $previewClient->getLink('https://www.boogiecall.com/en/Melbourne')->getPreviews(); // Only get preview data from specific parser $preview = $previewClient->getPreview('general'); // Convert output to array $preview = $preview->toArray();
输出
array(4) {
["basic"]=>array(2){
["title"]=>
string(44) "Events, parties & live concerts in Melbourne"
["description"]=>
string(107) "List of events in Melbourne. Nightlife, best parties and concerts in Melbourne, event listings and reviews."
}
["image"]=>array(2){
["large"]=>
string(94) "https://cdn.boogiecall.com/media/images/872398e3d9598c494a2bed72268bf018_1440575488_7314_s.jpg"
["small"]=>
string(94) "https://cdn.boogiecall.com/media/images/872398e3d9598c494a2bed72268bf018_1440575488_7314_s.jpg"
}
}
YouTube示例
use Marcelklehr\LinkPreview\Client; $previewClient = new Client(/*your http implementation here*/); // Only parse YouTube specific information $preview = $previewClient->getLink('https://www.youtube.com/watch?v=v1uKhwN6FtA')->getPreview('youtube'); var_dump($preview->toArray());
输出
array(2) {
["video"]=>array(2) {
["embed"]=>
string(128) "<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/v1uKhwN6FtA" frameborder="0"/>"
["id"]=>
string(11) "v1uKhwN6FtA"
}
}
许可协议
MIT许可(MIT)版权所有(c)2016 Denis Mysenko 版权所有(c)2018 Marcel Klehr
特此授予任何人免费获取此软件及其相关文档副本(以下简称“软件”)的权利,以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的个人提供此类权利,但须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对因合同、侵权或其他行为而产生的任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任源于、产生于或与软件或软件的使用或其他交易有关。