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

我做一个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;
}

程序大佬帮忙看看,有偿打赏

慕容708150
浏览 734回答 3
3回答

牧羊人nacy

在你的基础上加的,希望有用 <?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);
打开App,查看更多内容
随时随地看视频慕课网APP