> 백엔드 개발 > PHP 튜토리얼 > PHP는 문자열에서 한자와 숫자를 추출합니다.

PHP는 문자열에서 한자와 숫자를 추출합니다.

WBOY
풀어 주다: 2023-03-02 10:48:02
원래의
3042명이 탐색했습니다.

PHP는 문자열에서 한자와 숫자를 추출합니다.

위챗 인터페이스를 통해 사용자의 닉네임을 읽어보는데, 위 사진처럼 이름 중 상당수가 특수문자입니다. 이러한 특수문자가 mysql 데이터베이스에 저장되어 있지 않으면 의미가 없습니다. 그래서 필터링해서 이름 문자에서 한자와 숫자만 추출하고 싶습니다. 이것을 PHP로 작성하는 방법.

답글 내용:

PHP는 문자열에서 한자와 숫자를 추출합니다.

위챗 인터페이스를 통해 사용자의 닉네임을 읽어보는데, 위 사진처럼 이름 중 상당수가 특수문자입니다. 이러한 특수문자가 mysql 데이터베이스에 저장되어 있지 않으면 의미가 없습니다. 그래서 필터링해서 이름 문자에서 한자와 숫자만 추출하고 싶습니다. 이것을 PHP로 작성하는 방법.

이러한 특수 문자를 mysql 데이터베이스에 저장할 수 없다면 의미가 없습니다
----의미가 있습니다, 아이콘, 필드 유형에 varbinary를 사용해 보세요

사실 이모지 이모티콘은 mysql에 저장할 수 없습니다
mysql5.5 이하 버전에서는 이런 표현을 처리하지 않고 직접 저장하면 오류가 발생합니다
데이터베이스를 수정해보시면 됩니다 utf8mb4로 설정된 문자
github에 이모티콘이 있습니다 유니코드로 추출된 범위, 필터링 중에 참조 범위가 일치할 수 있습니다

우선, 이런 것들이 당신에게 아무런 의미가 없다면 저장하지 마세요.

일부만 추출해도 소용없습니다.

완전한 액세스를 위해 mysql은 문자 집합을 변환하기만 하면 됩니다. utf8mb4는 utf8의 상위 집합이며 이전 버전과 호환됩니다.

두 번째 단계는 코드 수준에서 트랜스코딩하는 것입니다. 인코딩하고, 저장하고, 꺼내고, 디코딩하고, 다시 표시할 수 있습니다.

마지막 방법은 사실 이모지만으로는 저장할 수 없습니다. 이모티콘을 필터링해도 괜찮습니다.

<code>public static function emoji($text) {
        $clean_text = "";

        // Match Emoticons
        $regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u';
        $clean_text = preg_replace($regexEmoticons, '', $text);

        // Match Miscellaneous Symbols and Pictographs
        $regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u';
        $clean_text = preg_replace($regexSymbols, '', $clean_text);

        // Match Transport And Map Symbols
        $regexTransport = '/[\x{1F680}-\x{1F6FF}]/u';
        $clean_text = preg_replace($regexTransport, '', $clean_text);

        // Match Miscellaneous Symbols
        $regexMisc = '/[\x{2600}-\x{26FF}]/u';
        $clean_text = preg_replace($regexMisc, '', $clean_text);

        // Match Dingbats
        $regexDingbats = '/[\x{2700}-\x{27BF}]/u';
        $clean_text = preg_replace($regexDingbats, '', $clean_text);

        $regexDingbats = '/[\x{231a}-\x{23ab}\x{23e9}-\x{23ec}\x{23f0}-\x{23f3}]/u';
        $clean_text = preg_replace($regexDingbats, '', $clean_text);

        return $clean_text;
    }</code>
로그인 후 복사

출처는 여기

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿