php +1 大数不溢出

<?php

function inc($s) {
    if (empty($s)) {return "1";}
    if ( ! isset($s[1]) ) {
        $code = ord($s[0]) + 1;
        if ($code <= ord("9")) {
            return chr($code);
        }
        return "10";
    }
    $n = strlen($s);
    $code = ord($s[$n-1]) +1;
    if ($code <= ord("9")) {
        return substr($s, 0, $n-1).chr($code);
    }
    return inc(substr($s, 0, $n-1))."0";
}

function sendCode(/* string */$phone) {
    $ch = curl_init();

    $headers = [
        "X-Requested-With: XMLHttpRequest",
        // "Content-Type: application/json",
        "Cookie: etsessionid=2k4pjijh9h1vm3gi7h3669atp6;",
        "Origin: http://172.16.0.224:7102"
    ];

    curl_setopt_array($ch, [
        CURLOPT_URL => 'https://enjoysoft.021city.cn/index.php/api/sendCode?phone='.$phone.'&type=1',
        CURLOPT_HEADER => 1,   // 不输出响应的http header
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_POST => 1,
        CURLOPT_SAFE_UPLOAD => 1,
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_SSL_VERIFYPEER => 0, // 对认证证书来源的检查
        CURLOPT_SSL_VERIFYHOST => 0,
    ]);

    $data = curl_exec($ch);
    if (curl_errno($ch)) {
        echo curl_error($ch);
    }
    curl_close($ch);
    return $data;
}

$s = "18916205621";
$n = 1000000;
while ($n-- > 0) {
    printf("%s\n", $s); // "2147493647"

    $data = sendCode($s);
    echo $data.PHP_EOL;

    $s = inc($s);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容