实用技巧: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 Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

docker start起不來的解決方法:1、檢查運作狀態,然後透過「echo 3 > /proc/sys/vm/drop_caches」指令釋放被佔用的記憶體;2、透過「$netstat -nltp|grep .. .”指令檢查連接埠是否已被佔用,如果上線後發現佔有,則改為可用埠再重啟即可。

title是定義網頁標題的意思,位於標籤內,並且是在瀏覽器的標題欄中顯示的文本,title對於網頁的搜尋引擎優化和用戶體驗都非常重要。在編寫HTML網頁時,應該注意使用相關的關鍵字和吸引人的描述來定義title元素,以便吸引更多的使用者點擊和瀏覽。

node start報錯的解決方法:1、直接在終端機執行「node xx.js」;2、新增start啟動項目「 "scripts": {"test": "echo \"Error: no test specified\" && exit 1 ","start":"node service.js"}」;3、重新執行「npm start」即可。

HTML中的title顯示的是網頁標題標籤,可以讓瀏覽者知道目前頁面的主要是說什麼的,所以每個網頁都應該有一個單獨的title。

publicclassTest1extendsThread{@Overridepublicvoidrun(){while(true){System.out.println(Thread.currentThread().getName());}}publicstaticvoidmain(String[]args){Test1test1=newTest1()}publicstaticvoidmain(String[]args){Test1test1=newTest1(); ;//輸出結果maintest1.start();//輸出結果Thread-0}}1.startstart作用是啟動一個

start方法和run方法$start()$方法用來啟動一個線程,這時此線程處於就緒(可運行)狀態,並沒有運行,一旦得到$cpu$時間片,就開始執行$run()$方法。而直接呼叫$run()$方法,只是呼叫了一個類別裡的方法,其本質上還是在當前執行緒中執行的,因此只有使用$start()$方法來呼叫$run()$方法才能實現真正的多線程。範例程式碼@Slf4j(topic="c.Test4")publicclassTest4{publicstaticvoidmain(Strin

PHP是一種流行的伺服器端程式語言,它提供了許多有用的功能,其中之一就是操作陣列。使用PHP陣列時,有時候需要刪除元素,這時候就可以使用unset()函數。 unset()函數是PHP中用來刪除變數的函數,可以用來刪除陣列中的元素。它的語法如下:unset(array$array[,mixed$key1[,mixed$key2[,mixed

session_start()函數是PHP中開啟會話的函數之一。會話是Web開發中很常見的技術,而會話的基礎就是在使用者造訪網站時給使用者一個唯一的會話ID,並在後續的訪問中使用這個會話ID來識別使用者。會話可用於保存使用者的登入狀態、購物車內容和使用者的其他信息,同時也可用於在網站中實現一些功能的權限控制。在PHP中開啟會話的方式非常簡單,只需使用sess
