我做一個(gè)24小時(shí)隨機(jī)跳轉(zhuǎn)程序,首先吧網(wǎng)址寫入一個(gè)txt文檔,一行一個(gè)。然后用php【隨機(jī)】讀取這個(gè)txt中的網(wǎng)址,取出可訪問的網(wǎng)址,如果存在不可訪問的網(wǎng)址就跳過,排除后繼續(xù)選擇!
目前的方法比較簡(jiǎn)單實(shí)現(xiàn)不了循環(huán)獲取
<?php
//讀取txt文檔
$data=file_get_contents("test.txt");
//換行打散
$data_url=explode("\r\n",$data);
//隨機(jī)數(shù)
$data_num = rand(0, count($data_url)-1);
//隨機(jī)行數(shù)
$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);
//判斷網(wǎng)址是否可訪問
if ($curl_code == 200) {
//隨機(jī)跳轉(zhuǎn)存入cookie
if (isset($_COOKIE["data"])){
$tzUrl=$_COOKIE["data"];
echo '連接成功,跳轉(zhuǎn)域名:'.$tzUrl;
//header ("Location: $tzUrl");
}else{
//跳轉(zhuǎn)
//header ("Location: $data_url[$data_num]");
$value = $data_url[$data_num];
//setcookie("data",$value, time()+3600/60/6);
//24 小時(shí)候過期的
setcookie("data",$value, time()+3600*24);
};
//echo '連接成功,狀態(tài)碼:' . $curl_code;
}else {
//echo '連接失敗,狀態(tài)碼:' . $curl_code;
}
程序大佬幫忙看看,有償打賞
3 回答

牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
在你的基礎(chǔ)上加的,希望有用
<?php
//讀取txt文檔
$data = file_get_contents("test.txt");
//換行打散。換行符在不同的系統(tǒng)是不一樣的,windows下是\r\n,linux下是\n。所以使用PHP常量
$data_url = explode(PHP_EOL, $data);
// 有效的網(wǎng)址
$usefulWebsite = [];
// 開始循環(huán)
while (count($data_url)) {
//隨機(jī)數(shù)
$data_num = rand(0, count($data_url) - 1);
//隨機(jī)行數(shù)
$url = $data_url[$data_num];
// 刪除已經(jīng)用過的。不能用unset,因?yàn)橛胾nset時(shí),數(shù)字類型的key不會(huì)重建
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);
//判斷網(wǎng)址是否可訪問
if ($curl_code == 200) {
// 存入有效網(wǎng)址數(shù)組
$usefulWebsite[] = $url;
//隨機(jī)跳轉(zhuǎn)存入cookie
if (isset($_COOKIE["data"])) {
$tzUrl = $_COOKIE["data"];
echo '連接成功,跳轉(zhuǎn)域名:' . $tzUrl;
//header ("Location: $tzUrl");
} else {
//跳轉(zhuǎn)
//header ("Location: $url");
$value = $url;
//setcookie("data",$value, time()+3600/60/6);
//24 小時(shí)候過期的
setcookie("data", $value, time() + 3600 * 24);
};
//echo '連接成功,狀態(tài)碼:' . $curl_code;
} else {
//echo '連接失敗,狀態(tài)碼:' . $curl_code;
// 不行就執(zhí)行下一條
continue;
}
}
print_r($usefulWebsite);
- 3 回答
- 0 關(guān)注
- 748 瀏覽
添加回答
舉報(bào)
0/150
提交
取消