2016-11-11
자신의 소스에 포함된 한글 파일을 찾아주는 프로그램을 짜보았다.
$root_dir = "/home/www";

function search_korean($dir)
{
	$dh = opendir($dir);
	$i=0;
	while (($file = readdir($dh)) !== false) 
	{
		if( substr($file, 0, 1) != '.' )
		{
			$tmp = $dir."/".$file;
			if( is_dir($tmp) )
			{
				search_korean($tmp);
			}
			else
			{
				$ex = pathinfo($file);
				if( isset($ex['extension']) && ($ex['extension'] == 'php' || $ex['extension'] == 'tpl') )
				{
					//if( $i > 80 ) die();

				    $fp = fopen($tmp, "r");

				    if( filesize($tmp) > 0 )
				    {
					//$contents = fread($fp, filesize($tmp));

				    	for( $j=1,$k=0; $row = fgets($fp); $j++ )
				    	{
				    		if( preg_match('/[\xA1-\xFE][\xA1-\xFE]/', $row) && !preg_match('/\/\*/', $row) && !preg_match('/\/\//', $row) )
				    		{
				    			echo $tmp.' ['.$j.'] : '.$row.'<br>';
				    			$k++;
				    		}
				    	}
						if( $k ) echo "<br><br>";
					}
					fclose($fp);
					$i++;
				}	
			}
		}
	}
}

search_korean($root_dir);
소스중에 php와 tpl로 끝나는 소스만 찾아서, //나 /*로 시작되는 주석 문장은 제외 하고 찾아서, 해당 위치와 줄을 표시해주는 함수 이다.

필자가 현재 작업중인 소스에서 돌려보니..
home/controller/device/config/auth_user_proc.php [388] : 1-이름 /home/controller/device/config/auth_user_proc.php [389] : 2-사번 /home/controller/device/config/auth_user_proc.php [393] : 1-모델명 /home/controller/device/config/auth_user_proc.php [394] : 2-MAC 주소 /home/controller/device/config/url_black_list_add_proc.php [124] : $obj_html->json_add_data("return_msg", "블랙리스트 유형을 선택하지 않았습니다."); /home/controller/device/config/profile_settings_modal_table_proc.php [321] : $obj_html->json_result_set("0", "이미 등록된 SSID와 MAC주소 입니다, 확인 후 재적용 해주세요."); /home/controller/device/config/profile_settings_modal_table_proc.php [368] : $obj_html->json_result_set("0", "이미 등록된 SSID와 MAC주소 입니다, 확인 후 재적용 해주세요."); /home/controller/device/config/profile_settings_modal_table_proc.php [502] : $obj_html->json_result_set("0", "이미 등록된 MAC입니다, 확인 후 재적용 해주세요."); /home/controller/device/config/profile_settings_modal_table_proc.php [548] : $obj_html->json_result_set("0", "이미 등록된 MAC입니다, 확인 후 재적용 해주세요."); .......
위와 같은 결과가 나왔다.
정규식 부분과 조건들을 변경해 주면 얼마든지 다른 것도 찾을 수 있으니, 자신의 환경에 맞게 알아서 잘 사용 하길 바란다.