想通过采集代理ip来做代理ip池,通过大量的Ip提高seo效果,习惯了正则处理,但是今天有时间测试下queryList,毕竟工欲善其事必先利其器。
// 保存全部的代理IP
$allProxy = [];
// 循环爬取数据
for ($i = 0; $i < 10; $i++) {
// 页码
$page = $i + 1;
// 请求地址
$url = 'https://proxy.ip3366.net/free/?action=china&page=' . $page;
// 定义采集规则
$rules = [
'ip' => ['td[data-title=IP]', 'text'],
'port' => ['td[data-title=PORT]', 'text'],
'type' => ['td[data-title=类型]', 'text'],
];
// 循环的dom主体
$range = 'tbody tr';
$rt = QueryList::get($url)->rules($rules)->range($range)->query()->getData();
foreach ($rt->all() as $ip) {
$allProxy[$ip['ip']] = $ip;
}
// 休息1秒
//sleep(1);
} 通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
md5/sha1+salt方式是目前各大cms常用的加密方式,虽然salt安全,但是各大md5网站也在研究这个方向,那么我们应该选择password_hash动态hash来助力,一种密码有多种hash结果.看代码模拟登陆.<?php //01.注册 $user ='zhang...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...
【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1. <?php 2. $data = ['1', '2', &...
php7新增的特性(1).强制限制只能返回一种类型<?php class task { } //must return an integer function add(): int { &nb...
php生成器的方法getReturn获取生成器迭代完成后的返回值,当生成器迭代完成会将生成器的返回值返回,因此如果迭代器未进行迭代是获取不到值的,如果你没有return值则返回null,参考代码:<?php function G1() { &nbs...