{"id":1432,"date":"2009-06-25T22:20:32","date_gmt":"2009-06-25T13:20:32","guid":{"rendered":"http:\/\/akimoto.jp\/blog\/?p=1432"},"modified":"2009-06-26T02:08:44","modified_gmt":"2009-06-25T17:08:44","slug":"launched-katakana-rate","status":"publish","type":"post","link":"https:\/\/akimoto.jp\/blog\/2009\/06\/25\/launched-katakana-rate\/","title":{"rendered":"\u300c\u30ab\u30bf\u30ab\u30ca\u7387\u300d\u3092\u516c\u958b\u3057\u307e\u3057\u305f"},"content":{"rendered":"<p><a href=\"http:\/\/akimoto.jp\/katakana\/\">\u30ab\u30bf\u30ab\u30ca\u7387<\/a>\u3068\u3044\u3046\u30ef\u30f3\u30a2\u30a4\u30c7\u30a2\u30b5\u30fc\u30d3\u30b9\u3092\u30ed\u30fc\u30f3\u30c1\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u3092\u30a4\u30f3\u30d7\u30c3\u30c8\u3059\u308b\u3068\u3001\u6587\u7ae0\u306e\u4e2d\u306b\u542b\u307e\u308c\u308b\u30ab\u30bf\u30ab\u30ca\u306e\u5272\u5408\u3092\u8a08\u7b97\u3057\u3066\u51fa\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n<p>\u672c\u65e5\u306e\u30cd\u30c3\u30c8\u30b5\u30fc\u30d5\u30a3\u30f3\u3067\u3001\u300c\u306a\u3093\u304b\u5999\u306b\u30ab\u30bf\u30ab\u30ca\u591a\u3044\u306a\u3042\u300d\u3068\u3044\u3046\u6587\u7ae0\u3092\u898b\u305f\u306e\u3067\u3059\u304c\u3001\u3053\u306e\u300c\u591a\u3044\u300d\u3063\u3066\u3069\u308c\u3050\u3089\u3044\u306a\u306e\u304b\u5b9a\u91cf\u5316\u3057\u3066\u307f\u3088\u3046\u3001\u3068\u8003\u3048\u305f\u306e\u304c\u304d\u3063\u304b\u3051\u3067\u3059\u3002<\/p>\n<p>PHP\u30ef\u30f3\u30d5\u30a1\u30a4\u30eb\u306a\u3093\u3067\u3001\u30bd\u30fc\u30b9\u3064\u3051\u3068\u304d\u307e\u3059\u306d\u3002\u3060\u3044\u3076\u624b\u629c\u304d\u3057\u3066\u307e\u3059\u304c\u2026<\/p>\n<p># \u3068\u3001\u30ab\u30bf\u30ab\u30ca\u3092\u610f\u8b58\u7684\u306b\u5897\u3084\u3057\u3066\u66f8\u3044\u3066\u307f\u305f\u306e\u3067\u3059\u304c\u3001\u306a\u3093\u3068\u304b20%\u8d8a\u3048\u3067\u304d\u308b\u3050\u3089\u3044\u3067\u3057\u305f\u3002\u30ab\u30bf\u30ab\u30ca\u3070\u3063\u304b\u308a\u3067\u65e5\u672c\u8a9e\u3092\u66f8\u304f\u306e\u3082\u697d\u3058\u3083\u306a\u3044\u3093\u3067\u3059\u306d\u3002<\/p>\n<pre lang=\"LANGUAGE\" lang=\"php\">\r\n<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.01 Transitional\/\/EN\">\r\n<html lang=\"ja\">\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text\/html; charset=UTF-8\">\r\n<meta name=\"robots\" content=\"index, follow, noarchive\" \/>\r\n<meta name=\"language\" content=\"ja\" \/>\r\n<meta name=\"title\" content=\"\u30ab\u30bf\u30ab\u30ca\u7387\" \/>\r\n<meta name=\"description\" content=\"\u3042\u306a\u305f\u306e\u6587\u7ae0\u306e\u30ab\u30bf\u30ab\u30ca\u4f9d\u5b58\u5ea6\u5408\u3044\u3092\u6e2c\u5b9a\u3057\u307e\u3059\" \/>\r\n<meta http-equiv=\"Content-Style-Type\" content=\"text\/css\">\r\n<meta http-equiv=\"Content-Script-Type\" content=\"text\/javascript\">\r\n<link rel=\"shortcut icon\" href=\"\/favicon.ico\" \/>\r\n<link rel=\"stylesheet\" type=\"text\/css\" media=\"screen\" href=\"\/images\/main.css\" \/>\r\n<title>\u30ab\u30bf\u30ab\u30ca\u7387<\/title>\r\n<\/head>\r\n<body>\r\n<style type=\"text\/css\">\r\np {\r\n line-height: 1.5;\r\n margin: 0.3em 0.3em 0.8em 0.3em;\r\n}\r\nblockquote {\r\n margin: 0.5em;\r\n width: 70%;\r\n}\r\nblockquote p {\r\n padding: 0.1em 0.3em;\r\n background: #ddd;\r\n}\r\n<\/style>\r\n<h1>\u30ab\u30bf\u30ab\u30ca\u7387 \u6e2c\u5b9a\u3057\u307e\u3059<\/h1>\r\n<?php\r\nmb_internal_encoding('UTF-8');\r\n\r\n\/**\r\n * \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u7528\u3001\u6587\u5b57\u5217->\u914d\u5217\u5909\u63db\r\n *  http:\/\/jp.php.net\/str_split \u306e\u30b3\u30e1\u30f3\u30c8\r\n *\/\r\nfunction mb_str_split($str, $length = 1) {\r\n  if ($length <1) { return FALSE; }\r\n  $result = array();\r\n  for ($i = 0; $i <mb_strlen($str); $i += $length) {\r\n    $result[] = mb_substr($str, $i, $length);\r\n  }\r\n  return $result;\r\n}\r\n\r\n\/**\r\n * \u30ab\u30bf\u30ab\u30ca\u7387\u3092\u6c42\u3081\u308b\r\n *\/\r\nfunction calcKatakanaRate($body) {\r\n  $converted = mb_convert_kana($body, 'HcV', 'UTF-8');\r\n\r\n  $originalTextArray = mb_str_split($body);\r\n  $convertedTextArray = mb_str_split($converted);\r\n\r\n  $result = array_diff($originalTextArray, $convertedTextArray);\r\n\r\n  $numOfDifferentLetters = count($result);\r\n  $numOfTotalLetters = count($originalTextArray);\r\n\r\n  return $numOfDifferentLetters \/ $numOfTotalLetters;\r\n}\r\n\r\nif (array_key_exists('body', $_REQUEST)\r\n    &#038;&#038; !empty($_REQUEST['body'])) {\r\n  echo '<h2>\u6e2c\u5b9a\u7d50\u679c<\/h2>';\r\n\r\n  $body = $_REQUEST['body'];\r\n  $rate = calcKatakanaRate($body);\r\n  \/\/ \u5c0f\u6570\u70b91\u6841\u30d1\u30fc\u30bb\u30f3\u30c8\u3092\u6c42\u3081\u308b\r\n  $formattedRate = floor($rate * 100 * 10) \/ 10;\r\n\r\n  echo \"<p><strong>$formattedRate<\/strong>\u30d1\u30fc\u30bb\u30f3\u30c8<\/p>\";\r\n\r\n  $message = '\u666e\u901a\u306e\u6587\u7ae0\u3067\u3059\u306d';\r\n  if ($rate > 0.6) {\r\n    $message = '\u30cb\u30db\u30f3\u30d8\u30e8\u30a6\u30b3\u30bd! \u30c9\u30e2\u30a2\u30ea\u30ac\u30c3\u30c8';\r\n  } else if ($rate > 0.4) {\r\n    $message = '\u3042\u306a\u305f\u306f\u30b3\u30f3\u30b5\u30eb\u3067\u3001\u4f55\u304b\u5f8c\u308d\u6697\u3044\u3053\u3068\u3092\u8aa4\u9b54\u5316\u305d\u3046\u3068\u3057\u3066\u307e\u3059\u306d';\r\n  } else if ($rate > 0.2) {\r\n    $message = '\u5916\u8cc7\u7cfb\u306b\u304a\u52e4\u3081\u3067\u3059\u304b?';\r\n  }\r\n  echo '<p>\u5224\u5b9a: ' . $message . '<\/p>';\r\n  \r\n  echo '<h3>\u539f\u6587<\/h3>';\r\n  echo '<blockquote><p>';\r\n  echo nl2br(htmlspecialchars($body, ENT_QUOTES, 'UTF-8'));\r\n  echo '<\/p><\/blockquote>';\r\n}\r\n\r\n?>\r\n<h2>\u6e2c\u5b9a\u3057\u305f\u3044\u6587\u7ae0\u3092\u8cbc\u308a\u4ed8\u3051\u3066\u3001\u300c\u6e2c\u5b9a\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044<\/h2>\r\n<form action=\".\" method=\"post\">\r\n<textarea name=\"body\" cols=\"80\" rows=\"20\"><\/textarea><br \/>\r\n<input type=\"submit\" value=\"\u6e2c\u5b9a\"><\/input>\r\n<\/form>\r\n\r\n<p id=\"footer\">\r\nCreated by <a href=\"http:\/\/twitter.com\/akky\">Akky AKIMOTO<\/a> (<a href=\"https:\/\/akimoto.jp\/blog\/\">\u30d6\u30ed\u30b0<\/a>). Inspired by \u2026(\u30d2\u30df\u30c4\u3002\u4f5c\u6210\u65e5\u306e\u3068\u3042\u308b\u30d6\u30ed\u30b0\u8a18\u4e8b\u3092\u898b\u3066\u3001\u731b\u70c8\u306b\u4f5c\u308a\u305f\u304f\u306a\u308a\u307e\u3057\u305f).\r\n<\/p>\r\n<\/body>\r\n<\/html>\r\n<\/pre>\n<p>[\u66f4\u65b0 06.26]<\/p>\n<p>id:tmatsuu\u3055\u3093\u304c<a href=\"http:\/\/d.hatena.ne.jp\/tmatsuu\/20090625\/1245949030\">\u30ab\u30bf\u30ab\u30ca\u7387\u306eJetpack\u7248\u3092\u4f5c\u3089\u308c\u305f<\/a>\u3088\u3046\u3067\u3059\u3002\u306a\u308b\u307b\u3069\u666e\u901a\u306e\u30a2\u30c9\u30aa\u30f3\u3068\u6bd4\u3079\u308b\u3068\u3059\u3054\u3044\u624b\u8efd\u3067\u3059\u306dJetpack\u3002<\/p>\n<p>\u3057\u304b\u3082\u3001\u3061\u3083\u3093\u3068\u5207\u308a\u6368\u3066\u304c\u56db\u6368\u4e94\u5165\u306b\u6539\u826f\u3055\u308c\u305f\u308a\u3057\u3066\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30ab\u30bf\u30ab\u30ca\u7387\u3068\u3044\u3046\u30ef\u30f3\u30a2\u30a4\u30c7\u30a2\u30b5\u30fc\u30d3\u30b9\u3092\u30ed\u30fc\u30f3\u30c1\u3057\u307e\u3057\u305f\u3002 \u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u3092\u30a4\u30f3\u30d7\u30c3\u30c8\u3059\u308b\u3068\u3001\u6587\u7ae0\u306e\u4e2d\u306b\u542b\u307e\u308c\u308b\u30ab\u30bf\u30ab\u30ca\u306e\u5272\u5408\u3092\u8a08\u7b97\u3057\u3066\u51fa\u3057\u3066\u304f\u308c\u307e\u3059\u3002 \u672c\u65e5\u306e\u30cd\u30c3\u30c8\u30b5\u30fc\u30d5\u30a3\u30f3\u3067\u3001\u300c\u306a\u3093\u304b\u5999\u306b\u30ab\u30bf\u30ab\u30ca\u591a\u3044\u306a\u3042\u300d\u3068\u3044\u3046\u6587\u7ae0\u3092\u898b &hellip; <a href=\"https:\/\/akimoto.jp\/blog\/2009\/06\/25\/launched-katakana-rate\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u300c\u30ab\u30bf\u30ab\u30ca\u7387\u300d\u3092\u516c\u958b\u3057\u307e\u3057\u305f<\/span><\/a><\/p>\n","protected":false},"author":17,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[2012,913,184],"class_list":["post-1432","post","type-post","status-publish","format-standard","hentry","category-projects","tag-php","tag-913","tag-184"],"_links":{"self":[{"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/posts\/1432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/comments?post=1432"}],"version-history":[{"count":8,"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/posts\/1432\/revisions"}],"predecessor-version":[{"id":1439,"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/posts\/1432\/revisions\/1439"}],"wp:attachment":[{"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/media?parent=1432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/categories?post=1432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/akimoto.jp\/blog\/wp-json\/wp\/v2\/tags?post=1432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}