- Get Started
- 基础
- 进阶
- 技巧
- 插件推荐
- API
- Get Started
- 基础 API
- QueryList html($html)
- string getHtml($rel = true)
- QueryList rules(array $rules)
- QueryList range($selector)
- QueryList removeHead()
- QueryList query(Closure $callback = null)
- Collection getData(Closure $callback = null)
- Array queryData(Closure $callback = null)
- QueryList static getInstance()
- void destruct()
- void destructDocuments() 静态方法
- QueryList pipe(Closure $callback)
- 特殊 API
- 高级 API
- 默认插件
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
全局配置
使用QueryList全局配置,避免重复操作。
QueryList的config()
方法可用于全局配置QueryList。
使用场景:比如在项目中全局注册QueryList插件,这样在项目中任何位置都可以直接使用这些插件,避免重复注册操作。
示例
在项目的启动文件中全局注册一些QueryList插件和扩展一些功能,以Laravel
框架为例,在AppServiceProvider.php
文件的boot()
方法中全局配置QueryList:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use QL\QueryList;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
// 全局注册插件
QueryList::config()->use(My\MyPlugin::class,$arg1,$arg2,$arg3)
->use([
My\MyPlugin1::class,
My\MyPlugin2::class,
Other\OtherPlugin::class
]);
//全局注册一个自定义的编码转换方法
QueryList::config()->bind('myEncode',function($outputEncoding,$inputEncoding){
$html = iconv($inputEncoding,$outputEncoding.'//IGNORE',$this->getHtml());
$this->setHtml($html);
return $this;
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
之后就可以在项目的任何位置使用QueryList时都可以直接使用这些已注册的扩展功能了:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use QL\QueryList;
class IndexController extends Controller
{
public function index()
{
$data = QueryList::get('...')->myPlugin1('...')->rules('...')->queryData();
$data = QueryList::get('https://top.etao.com')->myEncode('UTF-8','GBK')->find('a')->texts();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论