백엔드 개발 PHP 튜토리얼 PHP 기반 Emoji 처리 방법을 확장하는 클래스 라이브러리 소개

PHP 기반 Emoji 처리 방법을 확장하는 클래스 라이브러리 소개

Aug 08, 2016 am 09:22 AM
emoji quot str

Carmela 소개Carmela는 PHP, PHP 확장, JAVA, C++ 및 기타 언어(예: 일반 이모티콘 지원)를 기반으로 4섹션으로 구성된 UTF-8 처리 솔루션 세트를 제공합니다. 태그배경: Emoji 표현 문자열이 포함된 UTF-8 형식이 데이터베이스에 직접 삽입됩니다. 데이터베이스가 조정되지 않은 경우 오류가 보고됩니다. 데이터베이스와 테이블의 문자 집합을 utf8mb4_general_ci 로 변경하면 이 문제를 피할 수 있습니다. 그러나 많은 대규모 시스템 및 아키텍처에서 데이터베이스의 문자 집합을 수정하면 PC 측 표시 및 새 데이터와 기존 데이터 간의 호환성 문제 등 많은 문제가 발생할 수 있습니다. 이런 종류의 문제에 대해서는 데이터베이스에 들어가기 전에 교체하고 데이터베이스를 떠난 후 클라이언트 유형에 따라 역으로 교체하는 또 다른 해결책이 있습니다. CarmelaCarmela는 PHP 확장 기반의 4섹션 UTF-8 처리 솔루션을 제공합니다. 이 솔루션은 UTF-8의 3바이트보다 큰 UTF-8 문자를 UBB 모드로 대체할 수 있습니다. 예를 들어 특정 UTF-8 문자 %f0%9f%91%a4(표시의 편의를 위해 이모티콘 태그의 인코딩 모드가 표시됨)를 교체하면 [u]1f464[/u]처럼 보입니다. 다른 요청 클라이언트(iOS, Android, PC)에 따라 동시에 데이터베이스에서 읽는 것은 역방향 교체를 수행합니다. Carmela라는 이름은 "Different Carmela"에서 유래되었습니다. "Different Carmela" 시리즈는 암탉 Carmela와 그녀의 자녀 Carmelido와 Carmen의 모험 이야기를 담고 있습니다. Carmela 가족은 모두가 너무 다르기 때문에 감히 꿈을 꾸고 있습니다. 남들이 감히 생각하지 못하는 일을 시도하는 것. 설치1. 컴파일 및 패키지 git clone https://github.com/ugg/Carmela /phpize ./configure --with-php-c/php-config-path make make install
  • 구성 파일 수정

    vim /php.ini

  • 다음 콘텐츠 추가[carmela] extension=carmela.so 방법: carmela_str2ubb: emoji 태그가 포함된 문자열을 ubb 모드로 변환하면 대체 내용은 다음과 같습니다. [u]1f464[ /u]. 예: $str = urldecode("This is test %F0%9F%98%9C+%F0%9F%98%99 by ugg"); echo "str:".$str."\n"; echo "ubb:".carmela_str2ubb($str)."\n"; 출력 결과: str:This is test xxxx(CSDN Emoji不能展示用XXXX代替) by ugg ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg carmela_ubb2str: PC 플랫폼으로 전송하기 위해 utf-8 문자열 형식으로 변환된 ubb 태그를 포함합니다. encode.class.php의 carmela_ubb2str 메소드를 참조할 수 있습니다. 예: $str = urldecode("This is test %F0%9F%98%9C+%F0%9F%98%99 by ugg"); $str = carmela_str2ubb($str); echo "ubb:".$str."\n"; echo "str:".carmela_ubb2str($str)."\n"; 출력 결과: ubb:This is test [u]1f61c[/u] [u]1f619[/u] by ugg str:This is test(CSDN Emoji不能展示用XXXX代替) by uggcarmela_substr: 지정된 문자 길이의 이모티콘 문자가 포함된 문자열 가로채기 . carmela_sububb: ubb 태그가 포함된 문자열에서 지정된 길이의 문자를 가로챕니다. carmela_delstr: 문자열에서 이모티콘 문자 삭제, 비엄격 모드, 3바이트 이모티콘 문자는 삭제할 수 없으며 주로 일부에서 사용됩니다. carmela_delubb: ubb 태그가 포함된 문자열에서 ubb 태그를 삭제합니다. 공연使用PHP分别实现了两种方法,分别使用PHP的str_replace方法和PHP查找四字节emoji,进行替换的方法,以及PHP扩展方式,使用相同数据分别进行测试,测试效果如下。=========================== 方案1:PHP str_replace方式 ========================= =========== EMOJI TO STRING ========== TIME:781.94ms,处理行数: 100,处理字数:10100,处理字节数:31028 平均每行处理时间:7.819ms =========== STRING TO EMOJI ========== TIME:118.566ms,处理行数: 100,处理字数:18710,处理字节数:37793 平均每行处理时间:1.186ms =========================== 方案2:PHP字符查找方式 ========================= =========== EMOJI TO STRING ========== TIME:51.526ms,处理行数: 100,处理字数:10100,处理字节数:31028 平均每行处理时间:0.515ms =========== STRING TO EMOJI ========== TIME:27.959ms,处理行数: 100,处理字数:23092,处理字节数:41236 平均每行处理时间:0.28ms =========================== 方案3:PHP扩展方式 ========================= =========== EMOJI TO STRING ========== TIME:0.721ms,处理行数: 100,处理字数:10100,处理字节数:31028 平均每行处理时间:0.007ms =========== STRING TO EMOJI ========== TIME:0.956ms,处理行数: 100,处理字数:20308,处理字节数:38452 平均每行处理时间:0.01ms 从以上测试效果上来看,str_replace方式,性能非常的差。使用PHP直接编写替换函数方式,性能提升10倍多,而采用扩展方式后,性能提升明显,在把emoji从字符形式转换为ubb方式时,性能提升1000倍。以上测试数据通过create_file.php可以动态生成。本测试用例,生成100行数据,每行100个字符,100字符中可以包含3-10个emoji字符,进行测试的,直接运行benchmark.php 查看运行性能。原理处理四字节的emoji原理非常简单,通过字符对比找到emoji字符进行替换。难点就是在基本原理上如何提升性能,如何快速查找,替换。PHP扩展方式,为大家提供了一种思路,可以参考这种思路实现java,C#,js等等版本的。PC如何支持EMoji表情展示?在项目目录中的emoji目录下找到images目录,从web根目录创建emoji文件夹,把images文件夹整个拷贝到emoji文件下,调用encode.class.php里面的carmela_ubb2str方法,Util_Encode::carmela_ubb2str($str, "PC"); 即可在PC上展示Emoji表情,目前收集到的845个emoji表情,一些新的表情符号并没有纳入其中,当然,目前这种方法并没有写入PHP扩展中,性能相对来说并不高。Contact ugg.xchj@gmail.com for all questions

    以上就介绍了基于PHP扩展一种处理Emoji方法的类库介绍,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    Apple은 피닉스, 라임 등 118개의 새로운 이모티콘을 도입한 iOS 17.4 베타 1을 출시했습니다. Apple은 피닉스, 라임 등 118개의 새로운 이모티콘을 도입한 iOS 17.4 베타 1을 출시했습니다. Jan 26, 2024 am 08:24 AM

    1월 26일자 보도에 따르면, 외신 이모지피디아에 따르면, 오늘 공개된 iOS 17.4 베타 1 업데이트에 애플은 EU 27개국 테스트를 위한 사이드로딩, 서드파티 앱 스토어 등 주요 개선 사항 외에도 여러 가지 기능을 추가했다고 한다. 새로운 이모티콘. iOS 17.4 베타 1 업데이트에는 2023년 9월 유니코드에서 제안한 Emoji 15.1 업데이트부터 불사조, 라임, 고개를 위아래로 흔드는 웃는 얼굴, 길을 가리키는 캐릭터 이모티콘 시리즈가 추가됐다. 전체 Emoji는 다음과 같이 첨부됩니다. 이번 업데이트에는 새로운 Emoji 6개와 성 중립적인 가족 Emoji 4개를 포함하여 총 118개의 Emoji가 추가되었습니다. 그 외 기존 캐릭터 표현은 6가지가 있습니다

    Win10 Education Edition에서 이모티콘을 끄는 방법 Win10 Education Edition에서 이모티콘을 끄는 방법 Feb 24, 2024 pm 01:55 PM

    이모티콘 이모티콘은 Win10 Education Edition에 추가된 최신 입력 방법 기능입니다. 많은 귀여운 이모티콘이 채팅을 덜 지루하게 만듭니다. 그러나 일부 사용자는 단축키를 사용할 때 이 인터페이스를 팝업으로 표시합니다. 오늘은 Win10 Education Edition에서 이모티콘을 끄는 방법을 알려 드리겠습니다. . 소개하다. Win10 Education Edition에서 emoji1을 끄는 방법 먼저 아래 작업 표시줄 오른쪽에 있는 입력 방법을 마우스 오른쪽 버튼으로 클릭해야 합니다. 2. 팝업 옵션 상자에서 설정을 선택하여 언어 설정 인터페이스로 들어갑니다. 3. 인터페이스에서 "키" 옵션을 선택하고 하단으로 스크롤하여 이모티콘 표현을 끌 수 있는 "이모티콘 및 기호 패널 열기"를 찾습니다. 4. 다른 입력 방법이 설치된 경우 Windows 설정에서 "설정 및 언어" 인터페이스로 들어간 다음

    php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

    php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

    화웨이 이모티콘 입력 방법 화웨이 이모티콘 입력 방법 Sep 26, 2023 pm 01:31 PM

    Huawei 이모티콘 입력 방법: 1. Huawei 휴대폰에는 이모티콘 키보드가 함께 제공됩니다. 텍스트를 입력할 때 이 키보드로 전환하여 이모티콘을 입력할 수 있습니다. 2. 이모티콘을 입력해야 하는 경우 입력 상자를 길게 누른 다음 "Enter"를 선택합니다. "방법 설정"은 입력 방법 설정에서 시스템과 함께 제공되는 이모티콘 입력 방법을 찾아 선택할 수 있습니다. 3. 타사 이모티콘 키보드를 다운로드하여 사용한 다음 원하는 이모티콘을 찾아 선택할 수 있습니다. 키보드에서 사용하세요.

    iOS 15.4, iPadOS 15.4 Beta 1 퍼블릭 베타 출시, 마스크 착용해도 Face ID 사용 가능 iOS 15.4, iPadOS 15.4 Beta 1 퍼블릭 베타 출시, 마스크 착용해도 Face ID 사용 가능 Apr 13, 2023 pm 11:01 PM

    Apple은 공식적으로 iOS 15.4 및 iPadOS 15.4 베타 1 버전 19E5209h를 대중에게 출시했습니다. 공식 업데이트 노트에는 새로운 기능 추가를 포함하여 많은 변경 사항이 나열되어 있습니다. 마스크 Face ID 지원 Apple은 iOS 15.4에 "Mask Face ID"를 추가했습니다. iPhone은 마스크 착용 시 눈 주위의 고유한 특성을 식별하여 사용자를 인증합니다. 이 기능을 사용하려면 사용자는 iPhone 12 이상을 사용해야 합니다. 112개의 새로운 이모티콘 표현 추가 iOS 15.4 베타 1은 공식적으로 Emoji 14를 지원합니다. 그것에 추가

    Python 내장 유형 str 소스 코드 분석 Python 내장 유형 str 소스 코드 분석 May 09, 2023 pm 02:16 PM

    1유니코드 컴퓨터 저장의 기본 단위는 8비트로 구성된 바이트(byte)이다. 영어는 26개의 문자와 여러 개의 기호로만 구성되므로 영어 문자를 바이트 단위로 직접 저장할 수 있습니다. 하지만 다른 언어(예: 중국어, 일본어, 한국어 등)는 문자 수가 많기 때문에 인코딩에 여러 바이트를 사용해야 합니다. 컴퓨터 기술이 확산됨에 따라 비라틴어 문자 인코딩 기술이 계속 발전하고 있지만 여전히 두 가지 주요 제한 사항이 있습니다. 다국어 지원이 불가능합니다. 한 언어의 인코딩 방식을 다른 언어에서 사용할 수 없으며 통일된 표준이 없습니다. 예를 들어 중국어에는 GBK, GB2312, GB18030 등과 같은 여러 인코딩 표준이 있습니다. 인코딩 방법이 통일되어 있지 않기 때문에 개발자는 서로 다른 인코딩 간에 전환해야 하며 많은 오류가 필연적으로 발생합니다.

    Python에서 __str__과 __repr__의 유사점과 차이점은 무엇입니까? Python에서 __str__과 __repr__의 유사점과 차이점은 무엇입니까? Apr 29, 2023 pm 07:58 PM

    __str__과 __repr__의 유사점과 차이점은 무엇입니까? 우리 모두는 문자열 표현을 알고 있습니다. Python의 내장 함수인 repr()은 식별을 용이하게 하기 위해 문자열 형식으로 객체를 표현할 수 있습니다. 이것이 "문자열 표현"입니다. repr()은 특수 메소드 __repr__을 통해 객체의 문자열 표현을 얻습니다. __repr__이 구현되지 않은 경우 벡터의 인스턴스를 콘솔에 인쇄하면 결과 문자열이 구현될 수 있습니다. >>>classExample:pass>>>print(str(Example()))>>>

    mysql 이모티콘이 깨졌을 때 대처 방법 mysql 이모티콘이 깨졌을 때 대처 방법 Feb 16, 2023 am 10:01 AM

    잘못된 mysql 이모티콘에 대한 해결 방법: 1. "show create table test ENGINE=InnoDB DEFAULT CHARSET=utf8mb4" 명령을 통해 mysql 테이블 인코딩을 확인합니다. 2. "set names utf8mb4;"를 통해 읽기 인코딩을 "utf8mb4"로 설정합니다.

    See all articles