ユーザ用ツール

サイト用ツール

Writing /var/www/vhosts/w629.ws.domainking.cloud/enjoy-lei.com/lei_wiki/data/cache/f/fc486b4a555e0e96fe67c9963b7b240a.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /var/www/vhosts/w629.ws.domainking.cloud/enjoy-lei.com/lei_wiki/data/cache/f/fc486b4a555e0e96fe67c9963b7b240a.metadata failed

機種依存文字のチェック
Writing /var/www/vhosts/w629.ws.domainking.cloud/enjoy-lei.com/lei_wiki/data/cache/f/fc486b4a555e0e96fe67c9963b7b240a.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /var/www/vhosts/w629.ws.domainking.cloud/enjoy-lei.com/lei_wiki/data/cache/f/fc486b4a555e0e96fe67c9963b7b240a.xhtml failed

機種依存文字のチェック

方法として2種類ある

チェックしたコードを記入しチェックする

function checkItemMojiDependent($str)
{
	mb_regex_encoding('UTF-8');

	$pdc = '①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼∮∟⊿纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇゙Q燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰・蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"';
	$pdc_array = Array();
	$pdc_text = str_replace(array("\r\n","\n","\r"), '', $str);

	while($iLen = mb_strlen($pdc, 'UTF-8')) {
		array_push($pdc_array, mb_substr($pdc, 0, 1, 'UTF-8'));
		$pdc = mb_substr($pdc, 1, $iLen, 'UTF-8');
	}

	foreach($pdc_array as $value) {
		if(preg_match("/(" . $value . ")/", $pdc_text)) {
			return true;
			break;
		}
	}
	return false;
}

こちらはとても使えるソースだ。

SJIS区分表を参考し、チェックする

function checkItemMojiDependent($str)
{
	// 文字列をシフトJISに変換
	$sjisStr = mb_convert_encoding($str, 'sjis-win', 'UTF-8');
	// 一文字ずつチェック
	for($i = 0; $i < mb_strlen($sjisStr, 'sjis-win'); $i++){
		// 指定位置の文字を取り出す
		$ch = mb_substr($sjisStr, $i, 1, 'sjis-win');

		// 取得文字を16進数に変換
		$hex = intval(bin2hex($ch), 16);

		// 取得文字が機種依存文字か判定
		if($hex > 0x8540 && $hex < 0x889E){
			// 機種依存文字ですよ
			// return mb_substr($str, $i, 1);
			return false;
		}
	}
	return true;
}

JIS X 0208 の文字コード表 http://ash.jp/code/codetbl2.htm

SJISコード区分対応表

array(0x8540,0x857E),array(0x8580,0x859E), //   9区
array(0x859F,0x85FC),                      //  10区
array(0x8640,0x867E),array(0x8680,0x869E), //  11区
array(0x869F,0x86FC),                      //  12区
array(0x8740,0x877E),array(0x8780,0x879E), //  13区-NEC特殊記号-
array(0x879F,0x87FC),                      //  14区
array(0x8840,0x887E),array(0x8880,0x889E), //  15区
array(0xEB40,0xEB7E),array(0xEB80,0xEB9E), //  85区
array(0xEB9F,0xEBFC),                      //  86区
array(0xEC40,0xEC7E),array(0xEC80,0xEC9E), //  87区
array(0xEC9F,0xECFC),                      //  88区
array(0xED40,0xED7E),array(0xED80,0xED9E), //  89区-NEC拡張外字
array(0xED9F,0xEDFC),                      //  90区-NEC拡張外字
array(0xEE40,0xEE7E),array(0xEE80,0xEE9E), //  91区-NEC拡張外字
array(0xEE9F,0xEEFC),                      //  92区-NEC拡張外字
array(0xEF40,0xEF7E),array(0xEF80,0xEF9E), //  93区-NEC拡張外字
array(0xEF9F,0xEFFC),                      //  94区-NEC拡張外字
array(0xF040,0xF07E),array(0xF080,0xF09E), //  95区-ユーザ領域
array(0xF09F,0xF0FC),                      //  96区-ユーザ領域
array(0xF140,0xF17E),array(0xF180,0xF19E), //  97区-ユーザ領域
array(0xF19F,0xF1FC),                      //  98区-ユーザ領域
array(0xF240,0xF27E),array(0xF280,0xF29E), //  99区-ユーザ領域
array(0xF29F,0xF2FC),                      // 100区-ユーザ領域
array(0xF340,0xF37E),array(0xF380,0xF39E), // 101区-ユーザ領域
array(0xF39F,0xF3FC),                      // 102区-ユーザ領域
array(0xF440,0xF47E),array(0xF480,0xF49E), // 103区-ユーザ領域
array(0xF49F,0xF4FC),                      // 104区-ユーザ領域
array(0xF540,0xF57E),array(0xF580,0xF59E), // 105区-ユーザ領域
array(0xF59F,0xF5FC),                      // 106区-ユーザ領域
array(0xF640,0xF67E),array(0xF680,0xF69E), // 107区-ユーザ領域
array(0xF69F,0xF6FC),                      // 108区-ユーザ領域
array(0xF740,0xF77E),array(0xF780,0xF79E), // 109区-ユーザ領域
array(0xF79F,0xF7FC),                      // 110区-ユーザ領域
array(0xF840,0xF87E),array(0xF880,0xF89E), // 111区-ユーザ領域
array(0xF89F,0xF8FC),                      // 112区-ユーザ領域
array(0xF940,0xF97E),array(0xF980,0xF99E), // 113区-ユーザ領域
array(0xF99F,0xF9FC),                      // 114区-ユーザ領域
array(0xFA40,0xFA7E),array(0xFA80,0xFA9E), // 115区-IBM拡張漢字
array(0xFA9F,0xFAFC),                      // 116区-IBM拡張漢字
array(0xFB40,0xFB7E),array(0xFB80,0xFB9E), // 117区-IBM拡張漢字
array(0xFB9F,0xFBFC),                      // 118区-IBM拡張漢字
array(0xFC40,0xFC7E),array(0xFC80,0xFC9E), // 119区-IBM拡張漢字
array(0xFC9F,0xFCFC),                      // 120区
機種依存文字のチェック.txt · 最終更新: 2013/12/03 11:33 by luis_lee