하이픈은 여러 종류가 있는데, PHP를 반각 하이픈으로 통일한 견본이다

4342 단어 PHPhaifuntech

개요


WEB 서비스를 통해 폼을 받으면 데이터베이스에 하이픈을 입력하십시오.
분명히 문자 코드를 지정했는데 왜 각종 하이픈이 들어오는지 모르겠다.

어떻게 통일이 안 되지?


그래서 PHP의 샘플 코드를 만들어 보았습니다.찾아보니 하이픈의 종류가 많고 알 수 없는 하이픈이 있을지도 몰라요.
<?php

/*********
 * 日本語のハイフンを半角ハイフンに統一する
 * {Unicode}
 * -:{002D}:半角ハイフン
 * ⁻:{207B}
 * ₋:{208B}
 * ‐:{2010}
 * ‒:{2012}
 * –:{2013}
 * —:{2014}
 * ―:{2015}
 * −:{2212}
 * ─:{2500}
 * ━:{2501}
 * ➖:{2796}
 * ー:{30FC}
 * ㅡ:{3161}
 * -:{FF0D}
 * ー:{FF70}
 */

 // sample code
$text = '|⁻|₋|‐|‒|–|—|―|−|─|━|➖|ー|ㅡ|-|ー|';
$ConvertHyphenClass = new ConvertHyphenClass();
echo $ConvertHyphenClass->convert_hyphen($text);

class ConvertHyphenClass {

    private $target_regexs  = '/[\x{207B}\x{208B}\x{2010}\x{2012}\x{2013}\x{2014}\x{2015}\x{2212}\x{2500}\x{2501}\x{2796}\x{30FC}\x{3161}\x{FF0D}\x{FF70}]/u';
    private $result_regex = '-';

    function convert_hyphen($text){
        $input_text  = mb_convert_encoding($text,'UTF-8','auto');
        $retrun_text = preg_replace($this->target_regexs,$this->result_regex,$input_text);
        return $retrun_text;
    }
    
}

?>

대강 한 차례 설명하다

  • 입력한 문자 코드를 "UTF-8"
  • 로 통일
  • 유니코드 코드로 정규 표현식 바꾸기
  • 변환된 텍스트를 반환합니다.
    ※ 사용법의 샘플도 첨부되어 있습니다.
  • 최후


    하이픈 문제는 어떻게 입력해야 할지 뿌리 깊게 느껴지지만, 나는 사전에 형식을 바꾸거나 데이터베이스에 있는 하이픈을 변환해야 한다고 생각한다.

    좋은 웹페이지 즐겨찾기