You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

556 lines
23 KiB

<?php
namespace App\Console\Commands;
//use App\Services\FileService;
use App\Services\GooglePhotoSyncService;
//use App\Services\LiveStreamService;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
class TestCommand extends Command {
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:all';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct() {
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle() {
// $this->test08();exit;
// $this->test7();exit;
// $this->test02();
// exit;
// $this->test5();exit;
// $this->test01();exit;
$this->test04();exit;
// echo strlen("[VLOG] 메이드와 단 둘이 청소하실래요-ㅣ메이드복 입고 청소하기__ㅣ모델 일상 코스프레 브이로그ㅣCleaning Maid Cosplayㅣメイドといっしょに掃除しませんか?");exit;
// $service = new GooglePhotoSyncService();
// $service->syncDBToRedis();exit;
// $service->insertMappings();exit;
// $service->syncImageFiles();
// exit;
// $baseDir = "/Users/shixuesen/Documents/sync/image";
$baseDir = "/Users/shixuesen/Documents/otherSync/very";
$baseDir = "/Users/shixuesen/Downloads/y";
$dirs = ["mv"];
$files = [];
foreach ($dirs as $dir) {
$currentFiles = scandir($baseDir . DIRECTORY_SEPARATOR . $dir);
foreach ($currentFiles as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store" || is_dir($baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file)) {
continue;
}
$files[] = $baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file;
}
// $files = array_merge($files, $currentFiles);
}
$md5Set = [];
// $newDir = "/Users/shixuesen/Downloads/y/Nagisa魔物喵202003fantia会员合集/魔物喵__001";
// mkdir($newDir);
$i = 0;
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
continue;
}
$hash = md5_file($file);
if (array_key_exists($hash, $md5Set)) {
echo "file is same $file, and {$md5Set[$hash]} \n";
// rename($dir . DIRECTORY_SEPARATOR . $file, $newDir . DIRECTORY_SEPARATOR . $file);
// exit;
$i++;
} else {
$md5Set[$hash] = $file;
}
}
echo "all same file count is $i";
exit;
// $pid = pcntl_fork();
$childs = array();
$cmds = array(
array('/Users/shixuesen/Downloads/temp/dir1/1.txt', '/Users/shixuesen/Downloads/temp/dir2/1.txt'),
array('/Users/shixuesen/Downloads/temp/dir1/1.txt', '/Users/shixuesen/Downloads/temp/dir3/1.txt'),
array('/Users/shixuesen/Downloads/temp/dir1/1.txt', '/Users/shixuesen/Downloads/temp/dir4/1.txt'),
);
echo 'begin';
echo date("Y-m-d H:i:s");
foreach ($cmds as $cmd) {
$pid = pcntl_fork();
if ($pid == -1) {
// process creation failed
die('fork child process failure!');
} else if ($pid) {
// parent process logic
$childs[] = $pid;
pcntl_wait($status, WNOHANG);
} else {
// sub-process processing logic
pcntl_exec('/bin/cp', $cmd);
}
}
while (count($childs) > 0) {
foreach ($childs as $key => $pid) {
$res = pcntl_waitpid($pid, $status, WNOHANG);
//1 for error, greater than 0 representative process has been withdrawn, returns to the pid of the sub-process, and 0 representatives have not been able to take the exit sub-process when it is not blocked
if ($res == -1 || $res > 0) {
unset($childs[$key]);
}
}
sleep(1);
}
echo "start sleep";
sleep(100);
echo date("Y-m-d H:i:s");
echo 'done';
exit;
echo time() . "\n";
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
// we are the parent
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
pcntl_exec("/bin/cp", ["/Users/shixuesen/Downloads/temp/dir1/1.txt", "/Users/shixuesen/Downloads/temp/dir2/1.txt"]);
}
pcntl_exec("/bin/cp", ["/Users/shixuesen/Downloads/temp/dir1/1.txt", "/Users/shixuesen/Downloads/temp/dir3/1.txt"]);
pcntl_exec("/bin/cp", ["/Users/shixuesen/Downloads/temp/dir1/1.txt", "/Users/shixuesen/Downloads/temp/dir4/1.txt"]);
echo time();
exit;
$service = new GooglePhotoSyncService();
// $service->syncDBToRedis();exit;
// $service->insertMappings();exit;
$service->syncImageFiles();
exit;
// $service = new FileService();
// $service->queryFileTime("/Users/shixuesen/Documents/sync/image/instagram/mobe_carrie0223/mobe__0020/82339160_561812341080795_8865402232426240219_n.jpg");exit;
// echo $service->processDirAndFindLastFileMTime("/Users/shixuesen/Documents/sync/image/weibo/");exit;
// $service = new LiveStreamService();
// $service->moveFilesAndRenameFiles("/Users/shixuesen/Downloads/rsyncFiles/a", "/Users/shixuesen/Downloads/rsyncFiles/b");
// exit;
// $a = str_replace("/", "", "aaaaa/bbbb");
// echo $a;exit;
//
$file = "/Volumes/Crucial X6/Image/weibo/image/一只小短短OwO--7f605a17gy1gxpb0pg31vj22eo37k1kz.jpg";
$file = "/Users/shixuesen/Documents/sync/image/instagram/Likes/eeelyeee_277962893_719835709026094_2370282265319075961_n.jpg";
// $file = "/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/eeelyeee_277962893_719835709026094_2370282265319075961_n.jpg";
$file = "/Users/shixuesen/Documents/sync/image/instagram/boram__jj/277958530_1581189285586989_5049761303029075957_n.jpg";
// $file = "/Users/shixuesen/OneDrive/Pictures/instagram/boram__jj/277958530_1581189285586989_5049761303029075957_n.jpg";
$mtime = date("Y-m-d H:i:s", filemtime($file));
$atime = date("Y-m-d H:i:s", fileatime($file));
$ctime = date("Y-m-d H:i:s", filectime($file));
// $stat = stat($file);
echo "file mtime is $mtime, atime is $atime, ctime is $ctime";
// dump($stat);
}
public function test01() {
$keys = Redis::connection("cache_txy4")->lrange("file_to_encode", 0, -1);
foreach ($keys as $key) {
if (str_contains($key, "崔兔子")) {
// echo $key;
Redis::connection("cache_txy4")->lrem("file_to_encode", 0, $key);
}
}
// dump($keys);
// echo Redis::connection("cache_txy4")->get("aaaaaa");exit;
}
public function test02() {
$url = "https://wx4.sinaimg.cn/large/a2ca2fd3ly1hdcbwq251wj20h70fi0zi.jpg";
$urlInfo = parse_url($url);
$host = $urlInfo["host"];
$client = new Client();
$headers = [
'authority' => $host,
'accept' => 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache',
'pragma' => 'no-cache',
'referer' => 'https://m.weibo.cn/',
'sec-ch-ua' => '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"',
'sec-fetch-dest' => 'image',
'sec-fetch-mode' => 'no-cors',
'sec-fetch-site' => 'cross-site',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
];
$request = new Request('GET', $url, $headers);
$res = $client->sendAsync($request)->wait();
return $res->getBody();
}
public function test03() {
$list = Redis::connection()->smembers("永远别问为什么");
$files = scandir("/Volumes/Xcode");
foreach ($files as $file) {
if ($file == "." || $file == "..") {
continue;
}
if (!in_array($file, $list)) {
echo "$file not in array \n";
}
}
}
/**
* 相同文件查找
* @return void
*/
public function test04() {
// $baseDir = "/Volumes/Xcode/";
// $baseDir = "/Volumes/Crucial X6/就是阿朱啊/就是阿朱啊-5";
// $dirs = ["阿朱_2010"];
$baseDir = "/Users/shixuesen/Documents/otherSync/very";
$dirs = ["mv2001"];
$files = [];
foreach ($dirs as $dir) {
$currentFiles = scandir($baseDir . DIRECTORY_SEPARATOR . $dir);
foreach ($currentFiles as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store" || is_dir($baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file)) {
continue;
}
$files[] = $baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file;
}
// $files = array_merge($files, $currentFiles);
}
$md5Set = [];
// $newDir = "/Users/shixuesen/Downloads/y/Nagisa魔物喵202003fantia会员合集/魔物喵__001";
// mkdir($newDir);
$i = 0;
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
continue;
}
$hash = sha1_file($file);
if (array_key_exists($hash, $md5Set)) {
echo "file is same $file, and {$md5Set[$hash]} \n";
// rename($dir . DIRECTORY_SEPARATOR . $file, $newDir . DIRECTORY_SEPARATOR . $file);
// exit;
$i++;
} else {
$md5Set[$hash] = $file;
}
}
echo "all same file count is $i";
exit;
}
/**
* 针对百度网盘下载的
* 根据秀人相册的模特名字以 500 个文件作为一个文件夹重新整理
* @return void
*/
public function test5() {
$dir = "/Volumes/T7/Image/xiuren/6151-6200/6151-6200.7z/";
// $dir = "/Users/shixuesen/Documents/otherSync/xiuren/";
$files = scandir($dir);
$set = [];
$toMoveFiles = [];
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
continue;
}
preg_match("#NO.\d+\s(\S+)\[#", $file, $matches);
$owner_name = $matches[1];
$subDir = implode(DIRECTORY_SEPARATOR, [$dir, $file]);
if (is_dir($subDir)) {
$imageFiles = array_diff(scandir($subDir), [".", "..", ".DS_Store"]);
foreach ($imageFiles as $imageFile) {
$toMoveFiles[$owner_name][] = implode(DIRECTORY_SEPARATOR, [$subDir, $imageFile]);
}
}
// if (array_key_exists($owner_name, $set)) {
// $set[$owner_name] ++;
// dump("$owner_name exists");
// } else {
// $set[$owner_name] = 1;
// }
// dump($owner_name);
}
foreach ($toMoveFiles as $owner => $toMoveFile) {
dump(count($toMoveFile));
$totalNum = count($toMoveFile);
$n = floor($totalNum / 500);
for ($i = 0; $i < $totalNum; $i++) {
$trueDir = $dir . DIRECTORY_SEPARATOR . $owner . "_00" . floor($i / 500);
if ($i % 500 == 0 && !is_dir($trueDir)) {
mkdir($trueDir);
}
$newFile = $trueDir . DIRECTORY_SEPARATOR . pathinfo($toMoveFile[$i])["basename"];
dump("new file is " . $newFile);
rename($toMoveFile[$i], $trueDir . DIRECTORY_SEPARATOR . pathinfo($toMoveFile[$i])["basename"]);
}
}
exit;
// dump($toMoveFiles);
// $allV = 0;
// foreach ($set as $k => $v) {
// $allV += $v;
// }
// dump($set);
// dump($allV);
}
public function test06() {
$arr = ["(PRESTIGE)(IDBD-505)甘い誘惑 ハニートラップで男を誘うオンナ達 希崎ジェシカ 天海つばさ 冬月かえで 希志あいの Rio 等_2.mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_5.mp4",
"[Thz.la]ipz-814.mp4",
"(IDEAPOCKET)(IPZ-440)刺激的なTバックの淫らな誘惑 天海つばさ.mp4",
"【更多福利www.51fuliku.com-福利库】ARKX025.mp4",
"(IdeaPocket)OL痴漢電車 - 天海つばさ A.mp4",
"[Thz.la]sspd-133.mp4",
"[NoDRM]-iptd00982hhb2.mp4",
"(IDEAPOCKET)(IPZ-893)特ダネSCOOP!天海つばさ持ち込みプライベートSEX セルフ撮影映像.mp4",
"[NoDRM]-ipz00157hhb3.mp4",
"(IDEAPOCKET)(IPZ-456)ハメられた新人美女RQ 断り切れず枕営業を虐げられる美裸体 天海つばさ.mp4",
"(IDEAPOCKET)(IPZ-692)『まだ未開の快感が欲しくて…』催眠 トランス バースト寸前!超絶オーガズムSEX 天海つばさ.mp4",
"[44x.me]oae-161.mp4",
"[NoDRM]-iptd00533hhb4.mp4",
"[NoDRM]-ipz00080hhb2.mp4",
"(IDEAPOCKET)(IPZ-862)リピーター続出!噂の本番できちゃうおっパブ店 天海つばさ.mp4",
"(IDEAPOCKET)(IPZ-587)無理矢理AVに出演させられた美人マネージャー 天海つばさ.mp4",
"[Thz.la]ipx-081.mp4",
"[NoDRM]-iptd00533hhb2.mp4",
"[44x.me]idbd-789-2.mp4",
"[NoDRM]-iptd00521hhb1.mp4",
"[NoDRM]-iptd00982hhb1.mp4",
"[NoDRM]-ipz00135hhb1.mp4",
"[FHD]IPZ-692.mp4",
"[NoDRM]-ipz00119hhb3.mp4",
"[44x.me]ipx-239.mp4",
"[456k.me]ipz-739.mp4",
"(Ideapocket)(IDBD-403)321イク~!発射間際からチュパチュパレロレロのフェラで大発射!かすみ果穂 竹内紗里奈 等_1.mp4",
"[NoDRM]-ipz00041hhb3.mp4",
"(IDEAPOCKET)(IPZ-831)オフ会セックスパーティー!デビュー7周年記念!連続発売第一弾!「天海つばさ」セルフプロデュース作品.mp4",
"[FHD]IPZ-801.mp4",
"(IDEAPOCKET)(IPZ-371)うちの妻を犯して下さい 天海つばさ.mp4",
"【更多福利www.51fuliku.com-福利库】IDBD278-02.mp4",
"[NoDRM]-ipz00119hhb2.mp4",
"[NoDRM]-iptd00916hhb2.mp4",
"(IDEAPOCKET)(IPZ-530)セックスボランティア 天海つばさ.mp4",
"[456k.me]idbd-699-2.mp4",
"[NoDRM]-iptd00521hhb4.mp4",
"(IDEAPOCKET)(IPZ-548)エスコートSEX 甘いヴァーチャル痴女の誘い240分 天海つばさ.mp4",
"[44x.me]idbd-789.mp4",
"(死夜悪)(SHKD-739)服従の事件簿 File.001 天海つばさ.mp4",
"[Idea Pocket][idbd-278] 天海つばさのフェラチオ360分SP (Tsubasa Amami) A.mp4",
"(龍縛)(RBD-830)奴隷色のステージ36 天海つばさ.mp4",
"(IDEAPOCKET)(IPX-031)サディスティックな変態性交に濡れ溺れて…性覚醒!浴尿!放尿!痛快感!汚アナル愛撫!浮気性交!天海つばさ.mp4",
"[thz.la]IPZ-563.1080p.mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_4.mp4",
"[NoDRM]-ipz00041hhb1.mp4",
"(死夜悪)(SHKD-723)脱獄者 天海つばさ.mp4",
"[456k.me]idbd-764-2.mp4",
"(IDEAPOCKET)(IPZ-959)解禁!人生初 生中出しセックス 本物ザーメンを膣中に暴射!天海つばさ.mp4",
"[456k.me]idbd-764.mp4",
"[NoDRM]-ipz00058hhb3.mp4",
"(IdeaPocket)HIP ATTACK - 天海つばさ C.mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_2.mp4",
"[NoDRM]-ipz00157hhb1.mp4",
"[NoDRM]-ipz00058hhb4.mp4",
"[NoDRM]-ipz00058hhb2.mp4",
"(Ideapocket)(IPTD-706)むっちゃ好きやねん 感じてあふれる方言SEX 天海つばさ.mp4",
"【更多福利www.51fuliku.com-福利库】IPTD533(1).mp4",
"(IDEAPOCKET)(IPZ-641)流出した下着モデルのSEXテープ…【全編盗撮 ハメ撮り撮影】天海つばさ.mp4",
"(IDEAPOCKET)(IPZ-472)連続射精してしまうほど過激な性交 天海つばさ.mp4",
"(IdeaPocket)HIP ATTACK - 天海つばさ B.mp4",
"(IDEAPOCKET)(IPZ-978)緊縛調教に目覚めたマゾ極妻~麗しき君の縄~天海つばさ.mp4",
"(IdeaPocket)HIP ATTACK - 天海つばさ A.mp4",
"[bbs.yzkof.com]IDBD-610 B[约战竞技场].mp4",
"(龍縛)(RBD-821)快楽拷問研究所5 天海つばさ.mp4",
"[NoDRM]-iptd00982hhb3.mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_1.mp4",
"[NoDRM]-ipz00080hhb1.mp4",
"【更多福利www.51fuliku.com-福利库】IDBD278-03.mp4",
"(IDEAPOCKET)(AVOP-301)LEGEND IMPRESSION 史上最強コンテンツで贈る奇跡の共演!240分 希崎ジェシカ 天海つばさ.mp4",
"(IDEAPOCKET)(IPZ-945)突撃!単体女優天海つばさが噂の風俗店に体当たりガチ潜入リポート ピンサロから出張ホスト、オナニーCLUB.mp4",
"[NoDRM]-ipz00119hhb1.mp4",
"(龍縛)(RBD-807)マゾに目覚めた女3 天海つばさ 羽田璃子.mp4",
"[NoDRM]-ipz00080hhb3.mp4",
"[NoDRM]-iptd00916hhb1.mp4",
"[NoDRM]-iptd00521hhb2.mp4",
"(Ideapocket)(IDBD-403)321イク~!発射間際からチュパチュパレロレロのフェラで大発射!かすみ果穂 竹内紗里奈 等_2.mp4",
"(PRESTIGE)(IDBD-505)甘い誘惑 ハニートラップで男を誘うオンナ達 希崎ジェシカ 天海つばさ 冬月かえで 希志あいの Rio 等_1.mp4",
"-ipz783hhb.mp4",
"[NoDRM]-iptd00533hhb1.mp4",
"(IDEAPOCKET)(IPZ-847)ノンフィクション…ほんとうにあったレ○プ事件を実写化「天海つばさ最後の凌辱作品」.mp4",
"[NoDRM]-ipz00041hhb2.mp4",
"【更多福利www.51fuliku.com-福利库】IPTD-706b.mp4",
"【更多福利www.51fuliku.com-福利库】IDBD278-01.mp4",
"[NoDRM]-ipz00135hhb3.mp4",
"(IDEAPOCKET)(IPZ-838)DQN達に全身固定され失禁マグナムピストンFUCK 「動けない!」恨みを買った女教師の恥辱姦 天海つばさ.mp4",
"[Thz.la]ipz-877.mp4",
"[NoDRM]-iptd00533hhb3.mp4",
"[456k.me]idbd-699.mp4",
"(IDEAPOCKET)(IPZ-416)天海つばさ 並木優 240分W本指名SPECIAL 極上風俗4本番.mp4",
"(IDEAPOCKET)(IPZ-925)超W痴女 容赦なし!手加減なし!ザーメンを根こそぎ搾り抜く!天海つばさ 里美ゆりあ.mp4",
"[bbs.yzkof.com]IDBD-610 A[约战竞技场].mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_3.mp4",
"[NoDRM]-ipz00058hhb1.mp4",
"[Idea Pocket][idbd-278] 天海つばさのフェラチオ360分SP (Tsubasa Amami) B.mp4",
"(IDEAPOCKET)(IPZ-391)大乱交 天海つばさ.mp4",
"(IDEAPOCKET)(IPX-047)肉感ローアングルで魅せるノーブラ透け乳首の巨乳お姉さんの誘い 勃起必須シチュエーションの連発 天海つばさ.mp4",
"(IdeaPocket)OL痴漢電車 - 天海つばさ B.mp4",
"[Thz.la]IPZ-573.1080p.mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_6.mp4",
"[456k.me]ipx-395-C.mp4",
"(IDEAPOCKET)(IPVR-035)レジェンドVR共演 常に2人がかりでアナタを満足させてくれるハイクオリティ風俗 天海つばさ 佐山愛_7.mp4",
"[Thz.la]rbd-794.mp4",
"【更多福利www.51fuliku.com-福利库】IPTD-706a.mp4",
"[NoDRM]-ipz00135hhb2.mp4",
"(IDEAPOCKET)(IPZ-997)New Spermania 大量口内射精!大量顔面ぶっかけ!性獣達の特濃ザーメン群が弾丸の如く大放射!天海つばさ.mp4",
"(IDEAPOCKET)(IPZ-909)BURN!BURN!BURN!日サロ店員のイキ過ぎた接客 日焼けもいいけど「つばさ」とのエッチな記憶も焼きつけて 天海つばさ.mp4",
"[NoDRM]-iptd00521hhb3.mp4",
"(IDEAPOCKET)(IPZ-814)褒められヴァーチャル有頂天SEX ALL主観 「つばさ」がアナタのプレイを絶賛してくれたら 天海つばさ.mp4",
"-sspd128hhb.mp4",
"【更多福利www.51fuliku.com-福利库】IDBD-289 .mp4",
"[NoDRM]-ipz00157hhb2.mp4",
"(IDEAPOCKET)(IPZ-424)僕のお嫁さんはいつも全裸 天海つばさ.mp4"];
sort($arr);
dump($arr);
}
/**
* 根据秀人相册的模特名字以 500 个文件作为一个文件夹重新整理
* @return void
*/
public function test7() {
$dir = "/Volumes/T7/Image/xr/xiuren";
// $dir = "/Users/shixuesen/Documents/otherSync/xiuren/";
$files = scandir($dir);
$set = [];
$toMoveFiles = [];
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store" || starts_with($file, ".")) {
continue;
}
preg_match("#期(\S+)写真#", $file, $matches);
$owner_name = $matches[1];
// dump($owner_name);exit;
$subDir = implode(DIRECTORY_SEPARATOR, [$dir, $file]);
if (is_dir($subDir)) {
$imageFiles = array_diff(scandir($subDir), [".", "..", ".DS_Store"]);
foreach ($imageFiles as $imageFile) {
$toMoveFiles[$owner_name][] = implode(DIRECTORY_SEPARATOR, [$subDir, $imageFile]);
}
}
// if (array_key_exists($owner_name, $set)) {
// $set[$owner_name] ++;
// dump("$owner_name exists");
// } else {
// $set[$owner_name] = 1;
// }
// dump($owner_name);
}
// exit;
foreach ($toMoveFiles as $owner => $toMoveFile) {
dump(count($toMoveFile));
$totalNum = count($toMoveFile);
$n = floor($totalNum / 500);
for ($i = 0; $i < $totalNum; $i++) {
$trueDir = $dir . DIRECTORY_SEPARATOR . $owner . "_00" . floor($i / 500);
if ($i % 500 == 0 && !is_dir($trueDir)) {
mkdir($trueDir);
}
$newFile = $trueDir . DIRECTORY_SEPARATOR . pathinfo($toMoveFile[$i])["basename"];
dump("new file is " . $newFile);
rename($toMoveFile[$i], $trueDir . DIRECTORY_SEPARATOR . pathinfo($toMoveFile[$i])["basename"]);
}
}
exit;
// dump($toMoveFiles);
// $allV = 0;
// foreach ($set as $k => $v) {
// $allV += $v;
// }
// dump($set);
// dump($allV);
}
public function test08() {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.xiuren05.cc/XiuRen/index.html',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'authority: www.xiuren05.cc',
'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language: zh-CN,zh;q=0.9',
'cache-control: no-cache',
'cookie: cfstatshowcookie=xiurenpc',
'pragma: no-cache',
'sec-ch-ua: "Not/A)Brand";v="99", "Google Chrome";v="115", "Chromium";v="115"',
'sec-ch-ua-mobile: ?0',
'sec-ch-ua-platform: "macOS"',
'sec-fetch-dest: document',
'sec-fetch-mode: navigate',
'sec-fetch-site: none',
'sec-fetch-user: ?1',
'upgrade-insecure-requests: 1',
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
}
}