php中msubstr,PHP學習:thinkphp中字符截取函數msubstr()用法分析

《PHP學習:thinkphp中字符截取函數msubstr()用法分析》要點:

本文介紹了PHP學習:thinkphp中字符截取函數msubstr()用法分析,希望對您有用。如果有疑問,可以聯系我們。

本文實例講述了thinkphp中字符截取函數msubstr()用法.分享給大家供大家參考,具體如下:

ThinkPHP有一個內置字符截取函數msubstr()如下:PHP教程

msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)PHP教程

$str:要截取的字符串

$start=0:開始位置,默認從0開始

$length:截取長度

$charset="utf-8":字符編碼,默認UTF-8

$suffix=true:是否在截取后的字符后面顯示省略號,默認true顯示,false為不顯示PHP教程

調用如下PHP教程

代碼如下:

{$vo.title|msubstr=5,5,'utf-8',false}

解釋:截取字符串$vo.title,從第5個字符開始,截取5個,編碼為UTF-8,不顯示省略號

最近在用thinkphp寫程序的時候遇到? Call to undefined function msubstr() 這樣一個報錯,PHP教程

原因分析:PHP教程

在前臺模板中用到了msubstr|msubstr=###,5,5,'utf-8',false 這個函數來截取字符數量;PHP教程

問題出現:PHP教程

開始在本地寫的時候是windows操作系統沒報錯,后來把項目上傳到Linux服務器的時候拜訪前臺報Call to undefined function msubstr()這個錯;PHP教程

問題排除:PHP教程

開始在think官方看到有小伙伴們貼出來了要在公共函數庫下定義這個函數;函數如下:PHP教程

function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=false){

if(function_exists("mb_substr")){

if($suffix)

return mb_substr($str, $start, $length, $charset)."...";

else

return mb_substr($str, $start, $length, $charset);

}elseif(function_exists('iconv_substr')) {

if($suffix)

return iconv_substr($str,$start,$length,$charset)."...";

else

return iconv_substr($str,$start,$length,$charset);

}

$re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";

$re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";

$re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";

$re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";

preg_match_all($re[$charset], $str, $match);

$slice = join("",array_slice($match[0], $start, $length));

if($suffix) return $slice."…";

return $slice;

}

定義完之后在本地可以使用;也看到有小伙伴們說要把這個函數放到Thinkphp核心函數文件下可以辦理Call to undefined function msubstr()報錯問題,放在自己的項目Common目錄下的common.php下說無效,但是不想改動Think的核心文件方便 以后升級;PHP教程

辦理方案:PHP教程

還是Linx下的文件大小寫問題,經我仔細查看發現,由于項目不會自動生成common.php要手動建,原來我在本地項目下的Common下的common.php的C寫成了大寫,然后查看官方的核心Common下的common.php的C是小寫.最后把他改成小寫問題辦理;PHP教程

記錄一下,避免以后再犯這種低級錯誤!PHP教程

更多關于thinkPHP相關內容感興趣的朋友可查看本站專題:《ThinkPHP入門教程》及《ThinkPHP常用辦法總結》PHP教程

希望本文所述對大家基于thinkPHP框架的PHP程序設計有所贊助.PHP教程

維易PHP培訓學院每天發布《PHP學習:thinkphp中字符截取函數msubstr()用法分析》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532824.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VS Code的Error: Running the contributed command: ‘_workbench.downloadResource‘ failed解決

VS Code的Error: Running the contributed command: _workbench.downloadResource failed解決 轉自:https://blog.csdn.net/ibless/article/details/118610776 1 問題描述 此前,本人參考網上教程在VS Code中配置了“Remote SSH”插件(比如這…

Oracle閃回報錯,oracle 閃回區滿了,ORA-19815

oracle 閃回區滿了,查看日志報錯:ORA-19815,命令行輸入:sqlplus / as sysdbastartup mount //如果你的數據庫出現了無法連接的情況時,可以加上這句select file_type, percent_space_used as used,percent_space_rec…

[2021-ICCV] MUSIQ Multi-scale Image Quality Transformer 論文簡析

[2021-ICCV] MUSIQ: Multi-scale Image Quality Transformer 論文簡析 論文:https://arxiv.org/abs/2108.05997 代碼:https://github.com/google-research/google-research/tree/master/musiq 概述 當前SOTA的IQA(圖像質量評估&#xff0…

安裝oracle不動了,windows2008安裝ORACLE到2%不動的問題 | 信春哥,系統穩,閉眼上線不回滾!...

最近又有網友遇到在windows2008服務器上安裝ORACLE軟件時到2%就卡住不動的問題,下面是該網友的描述:oralce 11g r2 windows server 2008 R2安裝到最后一步復制數據文件時卡到2% 不走了內存一直飆升求解決這個問題前段時間也有人遇到過,但是他…

手把手教你入門Git --- Git使用指南(Linux)

手把手教你入門Git — Git使用指南(Linux) 系統:ubuntu 18.04 LTS 本文所有git命令操作實驗具有連續性,git小白完全可以從頭到尾跟著本文所有給出的命令走一遍,就會對git有一個初步的了解,應當能做到會用并…

linux修改主機名后oracle em控制臺起不來,更改計算機名后導致Oracle dbconsole無法啟動問題解決方法...

今天不知道哪根筋搭歪了,看著Oracle EM控制臺的主機名WIN-LOSGI0TCOG0亂七八糟的很不爽,就把它給改了。然后Oracle EM就上不去了,Oracledbconsole服務起不來,我嘗試把所有“WIN-LOSGI0TCOG0”替換成“ggsjy”,找了好多…

Shell腳本多行換行報錯:- unrecognized arguments- \

shell error: unrecognized arguments: \ 在使用linux長命令時,我們通常會用一個shell腳本加\分行的形式來更清晰展示參數。 這時有一個注意事項:在\后必須緊跟回車, 否則會導致后面的參數無法傳入。因為這時程序會將后面的參數算作一條新命…

shell腳本長命令帶換行 注釋方法

shell腳本長命令帶換行 注釋方法 命令行傳參 在訓練深度學習網絡時,我們每次實驗通常會有許多超參數需要設置,如batch size, epoch, gpu id, arch甚至還有一些具體的模型結構等。這事我們通常使用python模塊argparse,在命令行進行傳參。 比…

php對中英文字符串進行截取,利用php怎么對中英文混合的字符串進行截取

利用php怎么對中英文混合的字符串進行截取發布時間:2021-01-04 15:31:24來源:億速云閱讀:103作者:Leah利用php怎么對中英文混合的字符串進行截取?很多新手對此不是很清楚,為了幫助大家解決這個難題&#xf…

Linux查找命令find、loacte、whereis、which、type梳理

Linux查找命令find、loacte、whereis、which、type梳理 Linux操作系統中有5種常用的查找命令:find,locate,whereis,which,type,他們分別用于查找不同的東西,本文將就他們各自的功能進行一下梳理…

php數據關系圖,如何利用navicat查看數據表的ER關系圖

文章背景:(相關推薦:navicat)由于工作需要,現在要分析一個數據庫,然后查看各個表之間的關系,所以需要查看表與表之間的關系圖,專業術語叫做ER關系圖。默認情況下,Navicat顯示的界面是這樣的&…

Linux軟鏈接的使用

Linux軟鏈接的使用 轉自:https://www.cnblogs.com/sueyyyy/p/10985443.html,本博文僅對原博排版稍微優化。 更為細致的硬鏈接、軟鏈接的介紹可參考:Linux中的硬鏈接和軟鏈接 另外,提供筆者對軟連接的一個最簡單的理解&#xff…

oracle死鎖優化,Oracle性能優化之LockContention(轉)

1、概念DML事務使用row-level locks,查詢不會鎖定數據。鎖有兩種模式:exlusive、share。鎖的類型:? DML or data locks:– Table-level locks(TM)– Row-level locks(TX)? DDL or dictionary locks一個transaction至少獲得兩個鎖:一個共享的…

Linux中g++與gcc的區別

轉自:https://blog.csdn.net/bit_clearoff/article/details/53965514 Windows中我們常用vs來編譯編寫好的C和C代碼;vs把編輯器,編譯器和調試器等工具都集成在這一款工具中,在Linux下我們能用什么工具來編譯所編寫好的代碼呢&#…

linux系統可以用迅雷嗎,在Linux系統下使用wine運行迅雷5的方法

在Linux系統下使用wine運行迅雷5的方法一、下載ies4linux去 http://www.tatanka.com.br/ies4linux/page/Installation 下載ies4linux的文件包(目前版本為2.99),然后解壓縮。注意:這個網站被大陸和諧了,需要跳墻。至于怎么跳,諸位就…

從C源代碼到可執行文件的四個過程:預處理、編譯、匯編、鏈接

從C源代碼到可執行文件的四個過程:預處理、編譯、匯編、鏈接 總覽 我們將在Linux操作系統中,以C語言的Hello World程序為例,用gcc編譯器分步執行這四個步驟。 我們有再熟悉不過的HelloWorld程序,hello.c: #include …

uboot引導linux內核,u-boot啟動內核的幾種方式

1.uboot啟動內核的代碼縮減如下:s getenv ("bootcmd");debug ("### main_loop: bootcmd\"%s\"\n", s ? s : "");if (bootdelay > 0 && s && !abortboot (bootdelay)){run_command (s, 0);}2.假設boot…

跟我一起寫makefile: 概述、介紹、規則

跟我一起寫makefile 概述、介紹、規則 轉自:https://seisman.github.io/how-to-write-makefile/rules.html 概述 什么是makefile?或許很多Windows的程序員都不知道這個東西,因為那些Windows的集成開發環境(integrated developm…

linux內核中cent文件夾,Centos 中如何快速定制二進制的內核 RPM 包

1、rpm 制作前的環境準備:yum install -y ncurses-devel qt-devel rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel newt-devel python-devel zlib-devel bc2、準…

TabError- inconsistent use of tabs and spaces in indentation 查驗及解決方法

TabError: inconsistent use of tabs and spaces in indentation 查驗及解決方法 報錯代碼 def eccv16(pretrainedTrue):model ECCVGenerator()if(pretrained):import torch.utils.model_zoo as model_zoomodel.load_state_dict(torch.load(/home/ps/.cache/torch/hub/check…