{"id":798,"date":"2021-03-05T15:28:40","date_gmt":"2021-03-05T06:28:40","guid":{"rendered":"https:\/\/medicalfields.jp\/blog\/?p=798"},"modified":"2021-03-06T16:07:00","modified_gmt":"2021-03-06T07:07:00","slug":"php%e3%81%a7gs1%e3%81%8b%e3%82%89jan%e3%82%92%e4%bd%9c%e6%88%90","status":"publish","type":"post","link":"https:\/\/medicalfields.jp\/blog\/php\/php%e3%81%a7gs1%e3%81%8b%e3%82%89jan%e3%82%92%e4%bd%9c%e6%88%90\/","title":{"rendered":"PHP\u3067GS1\u304b\u3089JAN\u3092\u4f5c\u6210"},"content":{"rendered":"\n<p>\u306a\u304b\u3063\u305f\u306e\u3067\u4f5c\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u00a0\u81ea\u5df1\u8cac\u4efb\u3067\u304a\u4f7f\u3044\u304f\u3060\u3055\u3044<\/p>\n<pre class=\"brush:php\">class gs1 {\n    function gs1tojan($gs1) {\n        \/\/\u3059\u3079\u3066\u534a\u89d2\u6570\u5b57\u307e\u305f\u306f()\u3067\u3042\u308b\u304b\u3092\u30c1\u30a7\u30c3\u30af\n        if (preg_match(\"\/^[0-9()]+$\/\", $gs1))\n            \/\/\u6700\u521d\u306e\u6841\u306e\u30a4\u30f3\u30b8\u30b1\u30fc\u30bf\u30fc\u3092\u5224\u65ad\n            if(mb_strlen($gs1)==18){\n                if (strpos($gs1, '(010)') === 0|strpos($gs1, '(01)0') === 0) {\n                    $janNoCheckDigit=mb_substr($gs1, 5, 12);\n                    return $janNoCheckDigit.gs1::calcJanCodeDigit($janNoCheckDigit);\n                }\n            }else if(mb_strlen($gs1)==17){\n                if (strpos($gs1, '(01)') === 0) {\n                    $janNoCheckDigit=mb_substr($gs1, 4, 12);\n                    return $janNoCheckDigit.gs1::calcJanCodeDigit($janNoCheckDigit);\n                }\n            }else if(mb_strlen($gs1)==16){\n                if (strpos($gs1, '010') === 0) {\n                    $janNoCheckDigit=mb_substr($gs1, 3, 12);\n                    return $janNoCheckDigit.gs1::calcJanCodeDigit($janNoCheckDigit);\n                }\n            }else if(mb_strlen($gs1)==15){\n                if (strpos($gs1, '01') === 0) {\n                    $janNoCheckDigit=mb_substr($gs1, 2, 12);\n                    return $janNoCheckDigit.gs1::calcJanCodeDigit($janNoCheckDigit);\n                }\n            }else if(mb_strlen($gs1)==14){\n                if (strpos($gs1, '1') === 0) {\n                    $janNoCheckDigit=mb_substr($gs1, 1, 12);\n                    return $janNoCheckDigit.gs1::calcJanCodeDigit($janNoCheckDigit);\n                }\n            }\n        }\n        return false;\n    }\n    function calcJanCodeDigit($num) {\n        $arr = str_split($num);\n        $odd = 0;\n        $mod = 0;\n        for($i=0;$i&lt;count($arr);$i++){\n            if(($i+1) % 2 == 0) {\n                \/\/\u5076\u6570\u306e\u7dcf\u548c\n                $mod += intval($arr[$i]);\n            } else {\n                \/\/\u5947\u6570\u306e\u7dcf\u548c\n                $odd += intval($arr[$i]);\n            }\n        }\n        \/\/\u5076\u6570\u306e\u548c\u30923\u500d+\u5947\u6570\u306e\u7dcf\u548c\u3092\u52a0\u7b97\u3057\u3066\u3001\u4e0b1\u6841\u306e\u6570\u5b57\u309210\u304b\u3089\u5f15\u304f\n        $cd = 10 - intval(substr((string)($mod * 3) + $odd,-1));\n        \/\/10\u306a\u30891\u306e\u4f4d\u306f0\u306a\u306e\u3067\u30010\u3092\u8fd4\u3059\u3002\n        return $cd === 10 ? 0 : $cd;\n    }   \n}\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u306a\u304b\u3063\u305f\u306e\u3067\u4f5c\u308a\u307e\u3057\u305f\u3002 \u00a0\u81ea\u5df1\u8cac\u4efb\u3067\u304a\u4f7f\u3044\u304f\u3060\u3055\u3044 class gs1 { function gs1tojan($gs1) { \/\/\u3059\u3079\u3066\u534a\u89d2\u6570\u5b57\u307e\u305f\u306f()\u3067\u3042\u308b\u304b\u3092\u30c1\u30a7\u30c3\u30af if (preg_match(&#8220;\/^[0- &hellip; <a href=\"https:\/\/medicalfields.jp\/blog\/php\/php%e3%81%a7gs1%e3%81%8b%e3%82%89jan%e3%82%92%e4%bd%9c%e6%88%90\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">PHP\u3067GS1\u304b\u3089JAN\u3092\u4f5c\u6210<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[8],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6kJO0-cS","_links":{"self":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/798"}],"collection":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/comments?post=798"}],"version-history":[{"count":2,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/798\/revisions"}],"predecessor-version":[{"id":800,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/798\/revisions\/800"}],"wp:attachment":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/media?parent=798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/categories?post=798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/tags?post=798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}