为了账号安全,请及时绑定邮箱和手机立即绑定

php如何取出文本中有效的网址???

php如何取出文本中有效的网址???

PHP
慕容708150 2019-03-08 02:48:19
我做一个24小时随机跳转程序,首先吧网址写入一个txt文档,一行一个。然后用php【随机】读取这个txt中的网址,取出可访问的网址,如果存在不可访问的网址就跳过,排除后继续选择! 目前的方法比较简单实现不了循环获取 <?php //读取txt文档 $data=file_get_contents("test.txt"); //换行打散 $data_url=explode("\r\n",$data); //随机数 $data_num = rand(0, count($data_url)-1); //随机行数 $url = $data_url[$data_num]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); //判断网址是否可访问 if ($curl_code == 200) { //随机跳转存入cookie if (isset($_COOKIE["data"])){ $tzUrl=$_COOKIE["data"]; echo '连接成功,跳转域名:'.$tzUrl; //header ("Location: $tzUrl"); }else{ //跳转 //header ("Location: $data_url[$data_num]"); $value = $data_url[$data_num]; //setcookie("data",$value, time()+3600/60/6); //24 小时候过期的 setcookie("data",$value, time()+3600*24); }; //echo '连接成功,状态码:' . $curl_code; }else { //echo '连接失败,状态码:' . $curl_code; } 程序大佬帮忙看看,有偿打赏
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

在你的基础上加的,希望有用

<?php
//读取txt文档
$data = file_get_contents("test.txt");
//换行打散。换行符在不同的系统是不一样的,windows下是\r\n,linux下是\n。所以使用PHP常量
$data_url = explode(PHP_EOL, $data);

// 有效的网址
$usefulWebsite = [];

// 开始循环
while (count($data_url)) {
    //随机数
    $data_num = rand(0, count($data_url) - 1);
    //随机行数
    $url = $data_url[$data_num];
    // 删除已经用过的。不能用unset,因为用unset时,数字类型的key不会重建
    array_splice($data_url, $data_num, 1);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_exec($ch);
    $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);


    //判断网址是否可访问
    if ($curl_code == 200) {
        // 存入有效网址数组
        $usefulWebsite[] = $url;
        //随机跳转存入cookie
        if (isset($_COOKIE["data"])) {
            $tzUrl = $_COOKIE["data"];
            echo '连接成功,跳转域名:' . $tzUrl;
            //header ("Location: $tzUrl");
        } else {
            //跳转
            //header ("Location: $url");
            $value = $url;
            //setcookie("data",$value, time()+3600/60/6);
            //24 小时候过期的
            setcookie("data", $value, time() + 3600 * 24);
        };
        //echo '连接成功,状态码:' . $curl_code;
    } else {
        //echo '连接失败,状态码:' . $curl_code;
        // 不行就执行下一条
        continue;
    }
}

print_r($usefulWebsite);
查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 731 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信