{"id":545,"date":"2022-12-25T21:09:28","date_gmt":"2022-12-25T12:09:28","guid":{"rendered":"https:\/\/kamita.net\/program\/?p=545"},"modified":"2022-12-25T21:41:49","modified_gmt":"2022-12-25T12:41:49","slug":"%e3%83%ac%e3%83%b3%e3%82%bf%e3%83%ab%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%81%a7php%e3%82%92%e7%b6%99%e7%b6%9a%e7%9a%84%e3%81%ab%e5%8b%95%e3%81%8b%e3%81%99","status":"publish","type":"post","link":"https:\/\/kamita.net\/program\/?p=545","title":{"rendered":"\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u3067PHP\u3092\u7d99\u7d9a\u7684\u306b\u52d5\u304b\u3059"},"content":{"rendered":"\n<p>\u901a\u5e38\u306fcron\u3068\u304b\u4f7f\u3048\u3070\u3044\u3044\u306e\u3067\u3059\u304c\u3001\u5927\u91cf\u9ad8\u901f\u306b\u52d5\u304b\u3057\u305f\u3044\u6642\u306e\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n\n\n\n<p>cron\u3060\u3068\u30015\u5206\u6bce\u306b\u3068\u304b\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u304c\u3001\u3069\u3053\u307e\u3067\u51e6\u7406\u304c\u5b8c\u4e86\u3057\u3066\u3044\u308b\u304b\u3082\u308f\u304b\u3089\u306a\u3044\u306e\u3067\u3001<br>\u51e6\u7406\u304c\u7d42\u308f\u3063\u305f\u3089\u3001\u307e\u305f\u52d5\u304b\u3059\u3068\u3044\u3046\u306e\u3092\u3001\u30a4\u30f3\u30bf\u30fc\u30d0\u30eb\u3092\u3042\u307e\u308a\u304a\u304b\u305a\u306b\u52d5\u304b\u3057\u305f\u3044\u3068\u6642\u306e\u65b9\u6cd5\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30ed\u30fc\u30ab\u30ebPC\u306b\u3001api\u3092\u547c\u3073\u305f\u3059a.php\u3092<br>\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u306b\u3001DB\u51e6\u7406\u306a\u3069\u3092\u3059\u308bb.php\u3092\u7f6e\u304d\u307e\u3059\u3002<br>a.php\u306e\u51e6\u7406\u306fapi\u3092\u547c\u3073\u51fa\u3059\u3060\u3051\u306e\u8efd\u3044\u51e6\u7406\u3067\u3059\u304c\u3001<br>b.php\u306f\u5b9f\u969b\u306eDB\u51e6\u7406\u306a\u306e\u3067\u3001\u91cd\u305f\u3044\u5206\u3001sleep\u3092\u3057\u3063\u304b\u308a\u3068\u5165\u308c\u308b\u3068\u3088\u3044\u3067\u3059\u3002<br>\u3042\u307e\u308a\u6b32\u5f35\u3089\u306a\u304f\u3066\u3082\u3001cron\u3067\u5b9a\u671f\u7684\u306b\u547c\u3073\u51fa\u3059\u3088\u308a\u3082\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u3088\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/**\n * a.php \u30b5\u30f3\u30d7\u30eb\n *\/\n\n\n\/\/\u521d\u671f\u8a2d\u5b9a\nconst URL=\"\";\/\/api\u306eURL\n$scriptname=\"abc\";\/\/\u30b9\u30af\u30ea\u30d7\u30c8\u540d\n$setfilename=$scriptname.\"\/kanryou.txt\";\/\/\u5b8c\u4e86\u756a\u53f7\u30d5\u30a1\u30a4\u30eb\n$times=150000;\/\/\u4f55\u56de\u307e\u3067api\u3092\u547c\u3073\u51fa\u3059\u304b\u3000\u304b\u306a\u308a\u5927\u304d\u304f\u3066\u826f\u3044\n\nfor($i=0;$i &lt; $times;$i++){\n    $result=httpfix_api($i);\n    if($result === \"error\"){\n        \/\/api\u306e\u5bfe\u8c61\u53d6\u5f97\u306eselect\u3067\u30a8\u30e9\u30fc\u3057\u3066\u3044\u308b\n        print_r(\"\\nMaybe get_c_name api select Error!\");\n        break;\n\n    }elseif($result === \"fin\"){\n        \/\/\u5b8c\u5168\u306b\u7d42\u4e86\u3057\u3066\u3044\u308b        \n        print_r(\"\\nMaybe get_c_name All finished!\");\n        break;\n\n    }else{\n        \/\/\u6210\u529f\u3057\u756a\u53f7\u304c\u66f8\u304b\u308c\u3066\u3044\u308b\u306f\u305a\n        if(is_int($result) == true){\n            \/\/\u5b8c\u4e86\u756a\u53f7\u3092\u66f8\u304d\u8fbc\u307f\n            print_r(\"\\nSucces! i\/times-\".$i.\"\/\".$times);\n            $fp=fopen($setfilename,\"w\");\n            fwrite($fp,$result);\n            fclose($fp);\n\n        }else{\n            print_r(\"\\nIs Not number Error! get_c_name\");\n\n            \/\/\u554f\u984c\u304c\u8d77\u304d\u305f\u306e\u3067\u3001\u5f37\u5236\u7684\u306b\u30ab\u30a6\u30f3\u30bf\u30fc\u3092\u4e00\u3064\u3059\u3059\u307e\u305b\u305f\n            $num=file($setfilename)&#91;0];\n            $num=$num-1;\/\/sql\u306ebetween\u306b\u5bfe\u5fdc\u3059\u308b\u306e\u3067\u5f15\u304f\n            $fp=fopen($setfilename,\"w\");\n            fwrite($fp,$num);\n            fclose($fp);\n\n        }\n\n    }\n\n    sleep(3);\/\/\u9069\u5f53\u306b\u30a4\u30f3\u30bf\u30fc\u30d0\u30eb\n\n}\n\nprint_r(\"\\nExit for loop-for!\");\nexit;\n\n\n\nfunction httpfix_api($n){\n    global $setfilename,$scriptname;\n\n    print_r($scriptname.\" to api start! $n times\\n\");\n\n    \/\/\u958b\u59cb\u756a\u53f7\u306e\u53d6\u5f97\n    if(file_exists($setfilename)){\n        $end=file($setfilename)&#91;0];\n    }else{\n        echo \"no file $setfilename\\n\";\n        exit;\n    }\n\n    \/\/api\u63a5\u7d9a\n\n\/\/ API\u306eURL\u3092\u8a2d\u5b9a\n$url = URL;\n\n\/\/ cURL\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u521d\u671f\u5316\n$ch = curl_init($url);\n\n\/\/ HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30bf\u30a4\u30d7\u3092\u6307\u5b9a\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');\n\n\/\/ HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30d8\u30c3\u30c0\u30fc\u3092\u8a2d\u5b9a\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array(\n    'Content-Type: application\/x-www-form-urlencoded',\n    'Authorization: Bearer YOUR_API_TOKEN'\n));\n\n\/\/ HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30dc\u30c7\u30a3\u3092\u8a2d\u5b9a\n\n$data = array('end' =&gt; $end);\n\ncurl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));\ncurl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);\ncurl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);\n\n\/\/ HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u5b9f\u884c\n$response = curl_exec($ch);\n\/\/ HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u7d50\u679c\u3092\u53d6\u5f97\n$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n\n\/\/ cURL\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u7d42\u4e86\ncurl_close($ch);\n\n    return $response;\n}\n\n\n\n\n?&gt;<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/**\n * b.php \u30b5\u30f3\u30d7\u30eb\n * DB\u64cd\u4f5c\u4f8b\n *\/\n\n const HOST ='';\n const DBUSER='';\n const DBPASS=''; \n const DBNAME=''; \n\n$scriptname=\"api_abc\";\n\n\n \/\/\u521d\u671f\u8a2d\u5b9a\n$errorlog=$scriptname.\"_error.txt\";\nif(!file_exists($errorlog)){\n    $fp=fopen($errorlog,\"w\");\n    fclose($fp);\n}\n$oklog=$scriptname.\"_ok.txt\";\nif(!file_exists($oklog)){\n    $fp=fopen($oklog,\"w\");\n    fclose($fp);\n}\n\n\/\/1\u56de\u3042\u305f\u308a\u306eSELECT\u53d6\u5f97\u4ef6\u6570\n$limit_num=3;\n\n\n\/\/api\u5143\u304b\u3089\u524d\u56de\u306e\u5b8c\u4e86\u756a\u53f7\u3092\u53d6\u5f97\nif($_POST&#91;\"end\"] != null){\n    $end=$_POST&#91;\"end\"];\n    $scope=\"'id' &lt; $end AND \";\n}else{\n    $end=\"1000000\";\n    $scope=\"\";\n}\n\n\/\/DB\u3088\u308a\u5bfe\u8c61\u3092$limit_num\u4ef6\u53d6\u5f97\u3000\u30c6\u30fc\u30d6\u30eb\u540d\u3084\u305d\u306e\u4ed6where\u60c5\u5831\u3092\u66f8\u304f\n\n $query1=\"SELECT * FROM `\u30c6\u30fc\u30d6\u30eb\u540d` WHERE id BETWEEN 0 AND $end  ORDER BY id DESC  LIMIT \".$limit_num;\n\n \/\/ MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3059\u308b\n $link = mysqli_connect(HOST, DBUSER, DBPASS, DBNAME);\n \n \/\/ SQL\u3092\u5b9f\u884c\u3059\u308b\n $result = mysqli_query($link, $query1);\n $row = mysqli_fetch_assoc($result);\n\n if (count($row) > 0) {\n     \/\/ \u7d50\u679c\u30bb\u30c3\u30c8\u306b\u884c\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306e\u51e6\u7406\n     do {\n        print_r($row);\n        $id = $row&#91;'id'];\n\n        $result=update($id);\/\/\u306a\u3093\u3089\u304b\u306e\u51e6\u7406\n\n        if($result == false){\n            echo \"Error\";\n            exit;\n        }\n\n    } while ($row = mysqli_fetch_assoc($result));\n} elseif(count($row)==0) {\n    \/\/ \u7d50\u679c\u30bb\u30c3\u30c8\u306b\u884c\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306e\u51e6\u7406\n    echo \"fin\";\n}else{\necho \"error\";\n}\n\n \n \/\/ MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u5207\u65ad\u3059\u308b\n mysqli_close($link);\n\n echo $id;\/\/\u6700\u7d42\u51e6\u7406id\u3092\u8fd4\u3059\u2192\u547c\u3073\u51fa\u3057\u306e\u5b8c\u4e86\u756a\u53f7\u306b\u306a\u308b\n \nexit;\n\n\nfunction update($id){\n    global $errorlog,$oklog;\n\n    \/\/\u306a\u3093\u3089\u304b\u306esql\u51e6\u7406\u3000\u30e1\u30a4\u30f3\u30d5\u30ed\u30fc\u3068\u540c\u69d8\u306e\u66f8\u304d\u65b9\n\n    \/\/\n    \n    \/\/\u6210\u529f\u3057\u305f\u3089true,\u5931\u6557\u3057\u305f\u3089false\n    return $result;\n    \n\n}\n\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u901a\u5e38\u306fcron\u3068\u304b\u4f7f\u3048\u3070\u3044\u3044\u306e\u3067\u3059\u304c\u3001\u5927\u91cf\u9ad8\u901f\u306b\u52d5\u304b\u3057\u305f\u3044\u6642\u306e\u65b9\u6cd5\u3067\u3059\u3002 cro &hellip; <a href=\"https:\/\/kamita.net\/program\/?p=545\">Continued<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/kamita.net\/program\/index.php?rest_route=\/wp\/v2\/posts\/545"}],"collection":[{"href":"https:\/\/kamita.net\/program\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamita.net\/program\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamita.net\/program\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamita.net\/program\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=545"}],"version-history":[{"count":5,"href":"https:\/\/kamita.net\/program\/index.php?rest_route=\/wp\/v2\/posts\/545\/revisions"}],"predecessor-version":[{"id":551,"href":"https:\/\/kamita.net\/program\/index.php?rest_route=\/wp\/v2\/posts\/545\/revisions\/551"}],"wp:attachment":[{"href":"https:\/\/kamita.net\/program\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamita.net\/program\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamita.net\/program\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}