版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_24909089/article/details/88887901
1、要找一个免费能打开的ip代理网址 https://www.xicidaili.com/nt/1
2、上代码
<?php
/**
* php制作自己的ip池
* User:
* Date: 2019/3/29
* Email:
*/
ini_set('date.timezone', 'Asia/Shanghai'); //定义时间地点
header("Content-type:text/html;charset=utf-8");
class Script
{
function cc()
{
$cc = [];
//循环页数2页为例
for ($i = 1; $i <= 2; $i++) {
//打开ip代理网址 https://www.xicidaili.com/nt/1
$data = file_get_contents('https://www.xicidaili.com/nt/' . $i);
//正则匹配ip格式
$a = "/\d+\.\d+\.\d+\.\d+/";
//正则获取ip列表
preg_match_all($a, $data, $mar);
$cc = array_merge($cc, $mar[0]);
unset($mar);
}
//写入文件储存
$this->write($cc);
//暂停2秒
sleep(2);
//打开文件查看
$ip_arr = $this->sel();
//随机取一个数组下标使用
$key = array_rand($ip_arr,1);
print_r($ip_arr[$key]);
}
/**
* 写入文件
* @param $lyrics_file
* @return bool
*/
function write($lyrics_file)
{
foreach ($lyrics_file as $k => $y) {
$file = fopen("ipchi.txt", "a");
fwrite($file, $y);
fwrite($file, "\r\n");
}
return true;
}
/**
* 检查写入文件
*/
function sel()
{
$file = fopen("ipchi.txt", "r");
$line = array();
if ($file) {
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file)) { //判断是否到最后一行
//读取一行文本并去除前后空格
$line[] = trim(fgets($file));
}
}
fclose($file);//关闭文件
//去除空数组
return array_filter($line);
}
}
//运行
$ts = new Script();
$ts->cc();
?>