PHP fängt Chinesisch und Englisch ab

WBOY
Freigeben: 2016-07-30 13:29:49
Original
908 Leute haben es durchsucht

Der Code lautet wie folgt:

<code><span>/**
     *<span> @param</span> $string
     *<span> @param</span> $from   从0开始……
     *<span> @param</span> null $length
     *<span> @return</span> string
     * c_substr("给我一点", $from=0, 9)>>给我一
     * c_substr("给我一点", $from=1, 9)>>我一
     * c_substr("给我一点", $from=2, 9)>>我一
     * c_substr("给我一点", $from=3, 9)>>我一点
     */</span><span>private</span><span><span>function</span><span>c_substr</span><span>(<span>$string</span>, <span>$from</span>=<span>0</span>, <span>$length</span> = null)</span>{</span><span>//必填字段校验</span><span>if</span>(!<span>isset</span>(<span>$string</span>)||!<span>isset</span>(<span>$from</span>)||<span>$from</span><<span>0</span>){
            <span>return</span><span>''</span>;
        }
        <span>//获得字符串长度</span><span>$strLen</span> = strlen(<span>$string</span>);
        <span>//如果没有设置长度则把长度设置为字符串</span><span>if</span>(<span>$length</span>  == <span>null</span>){
            <span>$length</span> = <span>$strLen</span>;
        }
        <span>//判断字符串长度是否小于等于$length,是则直接返回字符串</span><span>if</span>(<span>$from</span> == <span>0</span>&&<span>$length</span> >= <span>$strLen</span>){
            <span>return</span><span>$string</span>;
        }
        <span>$subLen</span> = <span>$length</span> + <span>$from</span>;
        <span>$rtnStr</span> = <span>""</span>;
        <span>//开始截取字符串</span><span>//为了能够截取完整,需要从头开始遍历</span><span>for</span>(<span>$i</span>=<span>0</span>;<span>$i</span><<span>$subLen</span>&&<span>$i</span><<span>$strLen</span>;<span>$i</span>++){
            <span>//判断是否为中文 如果是则在不超长的情况下往后再截2个字节</span><span>if</span>(ord(<span>$string</span>[<span>$i</span>])><span>0xa0</span>){
                <span>if</span>(<span>$i</span>+<span>2</span><<span>$subLen</span>&&<span>$i</span>+<span>2</span><<span>$strLen</span>){
                    <span>$rtnStr</span> .= <span>$string</span>[<span>$i</span>].<span>$string</span>[<span>$i</span>+<span>1</span>].<span>$string</span>[<span>$i</span>+<span>2</span>];
                    <span>/**
                     * 如 “给我一点”
                     * 从位置0截取9个字节,则只获取“给我一”
                     * 从位置1截取9个字节,则只获取“我一”
                     * 从位置2截取9个字节,则只获取“我一”
                     * 从位置3截取9个字节,则只获取“我一点”
                     * 下面的if是为了跳过开头不完整的字符
                    */</span><span>if</span>(<span>$i</span><<span>$from</span>){
                        <span>$rtnStr</span> = <span>""</span>;
                    }
                    <span>$i</span> += <span>2</span>;
                }
                <span>else</span>{
                    <span>return</span><span>$rtnStr</span>;
                }
            }
            <span>//英文</span><span>else</span>{
                <span>$rtnStr</span> .= <span>$string</span>[<span>$i</span>];
            }
        }
        <span>return</span><span>$rtnStr</span>;
    }</code>
Nach dem Login kopieren

Urheberrechtserklärung: Erwähnen Sie mich einfach beim Nachdruck...

Das Obige stellt das Abfangen von PHP auf Chinesisch und Englisch vor, einschließlich inhaltlicher Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage