format('Y-m-d');
// $json_date = date_i18n('Y-m-d');
//$url='http://202.6.247.117/api/v1/infos?open_day='.$json_date;
$url = 'http://13.112.199.58/json/updata.json';
//$url = 'http://zipcloud.ibsnet.co.jp/api/search?zipcode=6168173';
$option = [
CURLOPT_RETURNTRANSFER => true, //文字列として返す
CURLOPT_TIMEOUT => 3, // タイムアウト時間
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_CUSTOMREQUEST => 'GET'
];
$ch = curl_init($url);
curl_setopt_array($ch, $option);
$json = curl_exec($ch);
$info = curl_getinfo($ch);
$errorNo = curl_errno($ch);
// OK以外はエラーなので空白配列を返す
if ($errorNo !== CURLE_OK) {
// 詳しくエラーハンドリングしたい場合はerrorNoで確認
// タイムアウトの場合はCURLE_OPERATION_TIMEDOUT
// var_dump($errorNo);
return [];
}
// 200以外のステータスコードは失敗とみなし空配列を返す
if ($info['http_code'] !== 200) {
// var_dump($info['http_code']);
return [];
}
// 文字列から変換
$jsonArray = json_decode($json, true);
//$filepaths = file_search(JSON_DATA_BASE_DIR);
//ファイル名
$sFileName = 'updata.json';
//ファイルパス
$sPath = JSON_DATA_BASE_DIR.'/'.$sFileName;
//ディレクトリ確認
// if(file_exists(JSON_DATA_BASE_DIR.'/')){
// //echo '・指定ファイルが既に存在しております。';
// //exit;
// }else{
// //echo '・ファイルの存在確認完了。
';
// mkdir(JSON_DATA_BASE_DIR.'/', 0775);
// //各二実に変更
// chmod(JSON_DATA_BASE_DIR.'/', 0775);
// }
//ファイルの存在確認
if(file_exists($sPath)){
//echo '・指定ファイルが既に存在しております。';
//exit;
//ファイルをオープン
if($filepoint = fopen($sPath,"w")){
//echo '・ファイルオープン完了。
';
}else{
//echo '・ファイルオープン失敗。
';
exit;
}
//ファイルのロック
if(flock($filepoint, LOCK_EX)){
//echo '・ファイルロック完了。
';
}else{
//echo '・ファイルロック失敗。
';
exit;
}
//ファイルへ書き込み
$sWriteContents = $json;
fwrite($filepoint,$sWriteContents);
}else{
//echo '・ファイルの存在確認完了。
';
//ファイルを作成
if(touch($sPath)){
//echo '・ファイル作成完了。
';
}else{
//echo '・ファイル作成失敗。
';
exit;
}
//ファイルのパーティションの変更
if(chmod($sPath,0755)){
//echo '・ファイルパーミッション変更完了。
';
}else{
//echo '・ファイルパーミッション変更失敗。
';
exit;
}
if($filepoint = fopen($sPath,"w")){
//echo '・ファイルオープン完了。
';
}else{
//echo '・ファイルオープン失敗。
';
exit;
}
//ファイルのロック
if(flock($filepoint, LOCK_EX)){
//echo '・ファイルロック完了。
';
}else{
//echo '・ファイルロック失敗。
';
exit;
}
//ファイルへ書き込み
$sWriteContents = $json;
fwrite($filepoint,$sWriteContents);
}
//ファイルのアンロック
if(flock($filepoint, LOCK_UN)){
//echo '・ファイルアンロック完了。
';
}else{
//echo '・ファイルアンロック失敗。
';
exit;
}
//ファイルを閉じる
if(fclose($filepoint)){
//echo '・ファイルクローズ完了。
';
}else{
//echo '・ファイルクローズ失敗。
';
exit;
}
// ////本番用の複製////
// $sPath = '../wp/json/'.$sFileName;
// if(file_exists($sPath)){
// //echo '・指定ファイルが既に存在しております。';
// //exit;
// //ファイルをオープン
// if($filepoint = fopen($sPath,"w")){
// //echo '・ファイルオープン完了。
';
// }else{
// //echo '・ファイルオープン失敗。
';
// exit;
// }
// //ファイルのロック
// if(flock($filepoint, LOCK_EX)){
// //echo '・ファイルロック完了。
';
// }else{
// //echo '・ファイルロック失敗。
';
// exit;
// }
// //ファイルへ書き込み
// $sWriteContents = $json;
// fwrite($filepoint,$sWriteContents);
// }else{
// //echo '・ファイルの存在確認完了。
';
// //ファイルを作成
// if(touch($sPath)){
// //echo '・ファイル作成完了。
';
// }else{
// //echo '・ファイル作成失敗。
';
// exit;
// }
// //ファイルのパーティションの変更
// if(chmod($sPath,0755)){
// //echo '・ファイルパーミッション変更完了。
';
// }else{
// //echo '・ファイルパーミッション変更失敗。
';
// exit;
// }
// if($filepoint = fopen($sPath,"w")){
// //echo '・ファイルオープン完了。
';
// }else{
// //echo '・ファイルオープン失敗。
';
// exit;
// }
// //ファイルのロック
// if(flock($filepoint, LOCK_EX)){
// //echo '・ファイルロック完了。
';
// }else{
// //echo '・ファイルロック失敗。
';
// exit;
// }
// //ファイルへ書き込み
// $sWriteContents = $json;
// fwrite($filepoint,$sWriteContents);
// }
//
// //ファイルのアンロック
// if(flock($filepoint, LOCK_UN)){
// //echo '・ファイルアンロック完了。
';
// }else{
// //echo '・ファイルアンロック失敗。
';
// exit;
// }
// //ファイルを閉じる
// if(fclose($filepoint)){
// //echo '・ファイルクローズ完了。
';
// }else{
// //echo '・ファイルクローズ失敗。
';
// exit;
// }
echo "";
}
add_action ( 'jsonsave_auto_function_cron', 'jsonsave_auto_function' );
// cron登録処理
add_filter( 'cron_schedules', 'cron_add_30min' );
function cron_add_30min( $schedules ) {
$schedules['30min'] = array(
'interval' => 1*60,
'display' => __( 'Once every 30 minutes' )
);
return $schedules;
}
if ( !wp_next_scheduled( 'jsonsave_auto_function_cron' ) ) { // 何度も同じcronが登録されないように
date_default_timezone_set('Asia/Tokyo');
wp_schedule_event( time(), '30min', 'jsonsave_auto_function_cron' );
}
function json_load_Func($sr,$sya,$waku){
$filepaths = file_search(JSON_DATA_BASE_DIR);
$json = file_get_contents($filepaths[0]);
// $json_date = $price = preg_replace('/[^0-9]/', '', $sr);
// $json_date = substr($json_date, 0,8);
// $day = new DateTime($json_date);
// $json_date = $day->format('Y-m-d');
// $url='http://202.6.247.117/api/v1/infos?open_day='.$json_date;
// $option = [
// CURLOPT_RETURNTRANSFER => true, //文字列として返す
// CURLOPT_TIMEOUT => 5, // タイムアウト時間
// CURLOPT_SSL_VERIFYPEER => false,
// CURLOPT_SSL_VERIFYHOST => false,
// CURLOPT_CUSTOMREQUEST => 'GET'
// ];
// $ch = curl_init($url);
// curl_setopt_array($ch, $option);
// $json = curl_exec($ch);
// $info = curl_getinfo($ch);
// $errorNo = curl_errno($ch);
// // OK以外はエラーなので空白配列を返す
// if ($errorNo !== CURLE_OK) {
// // 詳しくエラーハンドリングしたい場合はerrorNoで確認
// // タイムアウトの場合はCURLE_OPERATION_TIMEDOUT
// // var_dump($errorNo);
// return [];
// }
// // 200以外のステータスコードは失敗とみなし空配列を返す
// if ($info['http_code'] !== 200) {
// // var_dump($info['http_code']);
// return [];
// }
// 文字列から変換
$obj = json_decode($json , true);
$SRdata = null;
$racer_status = array();
foreach ($obj as $key1 => $value1) {//ここ会場ごと
$jyo = sprintf('%02d', $value1['vel_code']);
$cancel_race = $value1['cancel_race_num'];
foreach ($value1['races'] as $key2 => $value2) {//ここレースごと
$race_no = sprintf('%02d', $value2['race_num']);
$date = new DateTime($value2['race_start_at']);
$race_date = $date->format('Ymd');
foreach ($value2['athletes'] as $key3 => $value3) {//ここ車番ごと
$SRdata = "SR".$race_date.$jyo.$race_no;
if($sr === $SRdata && $sya == $value3['sha_num'] && $waku == $value3['waku_num']){
$racer_status = array('欠車'=>$value3['entry_status'],'ギア'=>$value3['gear_ratio']);
}
}
}
}
//curl_close($ch);
echo "";
return $racer_status;
}
function json_cancelracelist_Func($sr){
$filepaths = file_search(JSON_DATA_BASE_DIR);
$json = file_get_contents($filepaths[0]);
$obj = json_decode($json , true);
$cancel_list = '
'.$value1['cancel_race_num'].'Rは開催が中止となりました
'.$value2.'Rは開催が中止となりました