实用技巧:PHP截取中文字符串的问题
技巧|问题|中文|字符串
以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况。但中英文混合、特殊符号等问题总是存在,现在写一个比较全面的,仅供参考:
程序说明:
1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些
2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数
3. 特别适用于用htmlspecialchars()进行过编码的字符串
4. 能正确处理GB2312中实体字符模式()
程序代码:
<ccid_code>function FSubstr($title,$start,$len="",$magic=true) {/** * powered by Smartpig * mailto:d.einstein@263.net */ $length = 0;if($len == "") $len = strlen($title);//判断起始为不正确位置if($start > 0){ $cnum = 0; for($i=0;$i= 128) $cnum ++; } if($cnum%2 != 0) $start--; unset($cnum);}if(strlen($title)?) if(substr($title,$i,4)="=" ?) ?&?) if($cur="=" $cur="substr($title,$i,1);">=128) { $cstep = 2; $length += 2; $i += 1; $realnum ++; if($magic) { $blen ++; $ctype = 1; } }else{ $cstep = 1; $length +=1; $realnum ++; if($magic) { $alen++; } } } if($magic) { if(($blen*2+$alen) == ($len*2)) break; if(($blen*2+$alen) == ($len*2+1)) { if($ctype == 1) { $length -= $cstep; break; }else{ break; } } }else{ if($realnum == $len) break; }}unset($cur);unset($alen);unset($blen);unset($realnum);unset($ctype);unset($cstep);return substr($title,$start,$length);}</ccid_code>

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











docker 시작 실패에 대한 해결 방법: 1. 실행 상태를 확인한 후 "echo 3 > /proc/sys/vm/drop_caches" 명령을 통해 점유된 메모리를 해제합니다. 2. "$netstat -nltp|grep .. . " 명령을 사용하여 해당 포트가 이미 점유되어 있는지 확인합니다. 온라인 접속 후 점유된 것으로 확인되면 사용 가능한 포트로 변경한 후 다시 시작하세요.

제목은 웹 페이지의 제목을 정의하는 의미로, 태그 내에 위치하며 브라우저의 제목 표시줄에 표시되는 텍스트입니다. 제목은 웹 페이지의 검색 엔진 최적화 및 사용자 경험에 매우 중요합니다. HTML 웹 페이지를 작성할 때 더 많은 사용자가 클릭하고 탐색하도록 유도하려면 관련 키워드와 매력적인 설명을 사용하여 제목 요소를 정의하는 데 주의를 기울여야 합니다.

노드 시작 오류 해결 방법: 1. 터미널에서 직접 "node xx.js"를 실행합니다. 2. 시작 시작 항목 "scripts"를 추가합니다. ,"start":"node service.js"}"; 3. "npm start"를 다시 실행합니다.

HTML의 제목은 웹페이지의 제목 태그를 표시하여 뷰어가 현재 페이지의 주요 내용을 알 수 있도록 하므로 각 웹페이지에는 별도의 제목이 있어야 합니다.

start 메소드 및 run 메소드 $start()$ 메소드는 스레드를 시작하는 데 사용됩니다. 이때 스레드는 준비(실행 가능) 상태이며 $cpu$ 시간 조각을 얻으면 실행되지 않습니다. run()$ 메소드가 실행되기 시작합니다. $run()$ 메소드를 직접 호출하는 것은 본질적으로 현재 스레드에서 실행되는 클래스의 메소드만 호출하므로 $start()$ 메소드를 사용하여 $run()$를 호출해야만 달성할 수 있습니다. 방법. 진정한 멀티스레딩. 샘플 코드@Slf4j(topic="c.Test4")publicclassTest4{publicstaticvoidmain(Strin

publicclassTest1extendsThread{@Overridepublicvoidrun(){while(true){System.out.println(Thread.currentThread().getName());}} publicstaticvoidmain(String[]args){Test1test1=newTest1();test1.run() ;//출력 결과 maintest1.start();//출력 결과 Thread-0}}1.startstart는

PHP는 많은 유용한 기능을 제공하는 널리 사용되는 서버 측 프로그래밍 언어이며 그 중 하나는 배열 조작입니다. PHP 배열을 사용하다 보면 가끔 요소를 삭제해야 하는 경우가 있는데, 이런 경우에는 unset() 함수를 사용하면 됩니다. unset() 함수는 PHP에서 변수를 삭제하는 데 사용되는 함수이며 배열의 요소를 삭제하는 데 사용할 수 있습니다. 구문은 다음과 같습니다: unset(array$array[,mixed$key1[,mixed$key2[,mixed)

session_start() 함수는 PHP에서 세션을 여는 함수 중 하나입니다. 세션은 웹 개발에서 매우 일반적인 기술이며, 세션의 기본은 사용자가 웹 사이트를 방문할 때 고유한 세션 ID를 할당하고, 이 세션 ID를 사용하여 후속 방문에서 사용자를 식별하는 것입니다. 세션은 사용자의 로그인 상태, 장바구니 내용, 기타 사용자 정보를 저장하는 데 사용될 수 있으며 웹사이트의 일부 기능에 대한 권한 제어를 구현하는 데에도 사용될 수 있습니다. PHP에서 세션을 여는 방법은 매우 간단합니다. sess를 사용하면 됩니다.
