请问一个字符串截取的有关问题
请教一个字符串截取的问题
哪个高手有空帮我看一个函数,弄半天了不行
- 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>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

C語言return的用法有:1、對於傳回值類型為void的函數,可以使用return語句來提前結束函數的執行;2、對於傳回值型別不為void的函數,return語句的作用是將函數的執行結果傳回給呼叫者;3、提前結束函數的執行,在函數內部,我們可以使用return語句來提前結束函數的執行,即使函數並沒有回傳值。

原始碼:publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}#輸出上述程式碼的輸出可以簡單地得出結論:return在finally之前執行,我們來看下字節碼層面上發生了什麼事情。下面截取case1方法的部分字節碼,並且對照源碼,將每個指令的含義註釋在

標題:C#中使用Array.Sort函數對陣列進行排序的範例正文:在C#中,陣列是一種常用的資料結構,經常需要對陣列進行排序運算。 C#提供了Array類,其中有Sort方法可以方便地對陣列進行排序。本文將示範如何使用C#中的Array.Sort函數對陣列進行排序,並提供具體的程式碼範例。首先,我們要先了解Array.Sort函數的基本用法。 Array.So

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

在PHP中,有許多強大的陣列函數可以讓陣列的操作更加方便和快速。當我們需要將兩個陣列拼成一個關聯數組時,可以使用PHP的array_combine函數來實現這一操作。這個函數其實是用來將一個陣列的鍵當作另一個陣列的值,合併成一個新的關聯數組。接下來,我們將會講解如何使用PHP中的array_combine函數將兩個陣列拼成關聯數組。了解array_comb

在進行PHP編程時,我們常常需要將數組合併。 PHP提供了array_merge()函數來完成數組合併的工作,但是當數組中存在相同的鍵時,函數會覆寫原來的值。為了解決這個問題,PHP在語言中還提供了一個array_merge_recursive()函數,該函數可以合併數組並保留相同鍵的值,使得程式的設計變得更加靈活。 array_merge

Vue3.2setup語法糖是在單文件組件(SFC)中使用組合式API的編譯時語法糖解決Vue3.0中setup需要繁瑣將聲明的變量、函數以及import引入的內容通過return向外暴露,才能在使用的問題1.在使用中無需return宣告的變數、函數以及import引入的內容,即可在使用語法糖//import引入的內容import{getToday}from'./utils'//變數constmsg='Hello !'//函數func

JavaScript中return的用法,需要具體程式碼範例在JavaScript中,return語句用來指定從函數傳回的值。它不僅可以用於結束函數的執行,還可以將一個值傳回給呼叫函數的地方。 return語句有以下幾個常見的用法:傳回一個值return語句可以用來傳回一個值給呼叫函數的地方。下面是一個簡單的範例:functionadd(a,b){
