ホームページ php教程 php手册 截取函数,中文一个,英文两个算一个

截取函数,中文一个,英文两个算一个

Jun 07, 2016 am 11:43 AM

截取函数,中文一个,英文两个算一个
共享一个今天写的截取字符串函数,跟官方的不一样,用了你就知道/**<br> * 截取函数,中文一个,英文两个算一个<br> */<br> function mbsubstr($str, $start=0, $length, $suffix=true, $charset="utf-8") {<br>     $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";<br>     $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";<br>     $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";<br>     $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";<br>     preg_match_all($re[$charset], $str, $match);<br>     <br>     $strArr = $match[0];<br>     $str = array_values(tempStrArr($strArr));<br>     $strArrCount = count($str);<br>     if($strArrCount == $length+1){<br>         $length += 1;<br>     }<br>     <br>     $slice = implode('',array_slice($str,$start,$length));<br>     if($strArrCount &gt; $length){<br>         return $suffix ? $slice.'...' : $slice;<br>     }else{<br>         return $slice;<br>     }<br> }<br> function tempStrArr($strArr){<br>     $e = range('a','z');<br>     $i = count($strArr);<br>     foreach($strArr as $k=&gt;$v){<br>         if(in_array(strtolower($v), $e)){<br>             if(in_array(strtolower($strArr[$k+1]), $e)){<br>                 $strArr[$k] = $v.$strArr[$k+1];<br>                 unset($strArr[$k+1]);<br>                 break;<br>             }<br>         }elseif($v &gt; 0 &amp;&amp; $v  0 &amp;&amp; $strArr[$k+1]              $strArr[$k] = $v.$strArr[$k+1];<br>             unset($strArr[$k+1]);<br>             break;<br>         }<br>         $i--;<br>     }<br>     if($i &gt; 0){<br>         $strArr = tempStrArr($strArr);<br>     }<br>     <br>     return $strArr;<br> }共享这个代码。我总觉得哪里不对劲,有更好的思路的大神求思路



更多函数参见 http://chajiandaquan.com/function.html

AD:真正免费,域名+虚机+企业邮箱=0元

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python プログラミングの入門コード例について学びます。 Python プログラミングの入門コード例について学びます。 Jan 04, 2024 am 10:50 AM

Python プログラミングの入門コード例について学びます。

PHPを使用して在庫管理システムに在庫管理機能コードを記述する方法 PHPを使用して在庫管理システムに在庫管理機能コードを記述する方法 Aug 06, 2023 pm 04:49 PM

PHPを使用して在庫管理システムに在庫管理機能コードを記述する方法

PHP 変数の実際の使用: 10 の実際の使用例 PHP 変数の実際の使用: 10 の実際の使用例 Feb 19, 2024 pm 03:00 PM

PHP 変数の実際の使用: 10 の実際の使用例

Go 言語プログラミングの例: Web 開発のコード例 Go 言語プログラミングの例: Web 開発のコード例 Mar 04, 2024 pm 04:54 PM

Go 言語プログラミングの例: Web 開発のコード例

Java は単純なバブルソートコードを実装します Java は単純なバブルソートコードを実装します Jan 30, 2024 am 09:34 AM

Java は単純なバブルソートコードを実装します

初心者から熟練者まで: Go 言語で一般的に使用されるデータ構造のコード実装 初心者から熟練者まで: Go 言語で一般的に使用されるデータ構造のコード実装 Mar 04, 2024 pm 03:09 PM

初心者から熟練者まで: Go 言語で一般的に使用されるデータ構造のコード実装

Huawei Cloud Edge Computing Interconnection Guide: インターフェースを迅速に実装するための Java コード例 Huawei Cloud Edge Computing Interconnection Guide: インターフェースを迅速に実装するための Java コード例 Jul 05, 2023 pm 09:57 PM

Huawei Cloud Edge Computing Interconnection Guide: インターフェースを迅速に実装するための Java コード例

ガイダンスと例: Java で選択ソート アルゴリズムを実装する方法を学習します。 ガイダンスと例: Java で選択ソート アルゴリズムを実装する方法を学習します。 Feb 18, 2024 am 10:52 AM

ガイダンスと例: Java で選択ソート アルゴリズムを実装する方法を学習します。

See all articles