ホームページ バックエンド開発 PHPチュートリアル 请问一个字符串截取的有关问题

请问一个字符串截取的有关问题

Jun 13, 2016 am 10:21 AM
array quot return str

请教一个字符串截取的问题
哪个高手有空帮我看一个函数,弄半天了不行

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpfunction glstrlen($str){    $tmp_array = explode(",",$str);    if(strlen($str)>30) {        array_pop($tmp_array);        $str = implode(",",$tmp_array);        if(strlen($str)>30) {            glstrlen($str);        } else {            return $str;        }    } else {        return $str;    }}$strs = "Woods,trees,grass ,grassland,Yellow, motorcycle,highway";$a = glstrlen($strs);echo $a;?>
ログイン後にコピー


按单词从前面截取字符串,控制在30个字符以内的长度,调试半天,不知道函数内部哪里不对,返回值为空,奇怪了,请高手帮我看看,多谢了,在线等着。

------解决方案--------------------
PHP code
$strs = "Woods,trees,grass ,grassland,Yellow, motorcycle,highway";$array = explode(',' , $strs);print_r(array_pad($array,30,'.'));<br><font color="#e78608">------解决方案--------------------</font><br>array_pop:将数组最后一个单元弹出(出栈),返回的是弹出的单元,并不是弹出最后一个单元后的数组。<br><font color="#e78608">------解决方案--------------------</font><br>由于这是递归,所以你的return只是退出到上一层<br>
ログイン後にコピー
PHP code
function glstrlen($str){    $tmp_array = explode(",",$str);    if(strlen($str)>30) {        // var_dump($str);        array_pop($tmp_array);        $str = implode(",",$tmp_array);        if(strlen($str)>30) {            // 加了个判断,如果有返回值,那么就退出,这样层层退出,调用才算结束            if(!is_null($str = glstrlen($str)) ) {                return $str;            }        } else {                    return $str;        }    } else {        return $str;    }   }<br><font color="#e78608">------解决方案--------------------</font><br>
ログイン後にコピー
PHP code
function glstrlen($str) {    $arr =explode(',', $str);    while(strlen($str) > 30) {        array_pop($arr);        $str = join(',', $arr);    }    return $str;}echo glstrlen("Woods,trees,grass ,grassland,Yellow, motorcycle,highway");<br><font color="#e78608">------解决方案--------------------</font><br>
ログイン後にコピー
PHP code
function glstrlen($str) {  if(strlen($str)>30) {    $tmp_array = explode(",",$str);    array_pop($tmp_array);    $str = implode(",",$tmp_array);    return glstrlen($str);  }  return $str;}$strs = "Woods,trees,grass ,grassland,Yellow, motorcycle,highway";$a = glstrlen($strs);echo $a;<div class="clear">
                 
              
              
        
            </div>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

C言語のreturnの使い方を詳しく解説 C言語のreturnの使い方を詳しく解説 Oct 07, 2023 am 10:58 AM

C 言語における return の使い方は、 1. 戻り値の型が void の関数については、return 文を使用して関数の実行を早期に終了することができます; 2. 戻り値の型が void ではない関数については、 return ステートメントは、関数の実行を終了するためのものです。結果は呼び出し元に返されます。 3. 関数の実行を早期に終了します。関数内で return ステートメントを使用して、関数の実行を早期に終了することもできます。関数が値を返さない場合。

Javaのreturn文とfinally文の実行順序は何ですか? Javaのreturn文とfinally文の実行順序は何ですか? Apr 25, 2023 pm 07:55 PM

ソースコード: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}#出力 上記のコードの出力は、単純に次のように結論付けることができます:finally の前に return が実行されます。バイトコード レベルで何が起こるかを見てみましょう。以下は、case1 メソッドのバイトコードの一部をインターセプトし、ソース コードを比較して、各命令の意味に注釈を付けます。

C# の Array.Sort 関数を使用して配列を並べ替える C# の Array.Sort 関数を使用して配列を並べ替える Nov 18, 2023 am 10:37 AM

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

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

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

PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法 PHP で array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法 Jun 26, 2023 pm 01:41 PM

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法 PHPのarray_merge_recursive()関数を使用するシンプルで明確な方法 Jun 27, 2023 pm 01:48 PM

PHP でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

Vue3 はセットアップ構文シュガーをどのように使用して return の書き込みを拒否しますか Vue3 はセットアップ構文シュガーをどのように使用して return の書き込みを拒否しますか May 12, 2023 pm 06:34 PM

Vue3.2 セットアップ構文シュガーは、単一ファイル コンポーネント (SFC) で結合された API を使用して、Vue3.0 の面倒なセットアップを解決するコンパイル時構文シュガーです。宣言された変数、関数、インポートによって導入されたコンテンツは、インポートによって公開されます。使用上の問題点 1. 宣言した変数、関数、import で導入した内容を使用中に return する必要はなく、糖衣構文を使用することができます。 // 導入した内容をインポート import{getToday }from'./utils'//variable constmsg='Hello !'//function func

Python組み込み型strソースコード解析 Python組み込み型strソースコード解析 May 09, 2023 pm 02:16 PM

1 Unicode コンピュータ ストレージの基本単位は 8 ビットで構成されるバイトです。英語は 26 文字といくつかの記号のみで構成されているため、英語の文字はバイト単位で直接格納できます。ただし、他の言語 (中国語、日本語、韓国語など) では、文字数が多いため、エンコードに複数のバイトを使用する必要があります。コンピューター技術の普及に伴い、非ラテン文字エンコード技術は発展を続けていますが、依然として 2 つの大きな制限があります。 多言語サポートがないこと。 ある言語のエンコード スキームを別の言語で使用することはできません。また、統一された標準もありません。たとえば、中国語には GBK、GB2312、GB18030 など、多くのエンコード標準があります。エンコード方式が統一されていないため、開発者は異なるエンコード間で相互に変換する必要があり、必然的に多くのエラーが発生します。

See all articles