當前位置:首頁 » 編程語言 » php字元串substr

php字元串substr

發布時間: 2023-05-01 11:44:46

php字元串截取函數用法分析

本文實例分析了php字元串截取函數用法。分享給大家供大家參考。具體分析如下:
php自帶的截取字元串的函數只能處理英文,數字的不能截取中文混排的,後面一個示例比較好用,第一個主要是給初學者學學用的,具體代碼如下:
復制代碼
代碼如下:<?php

//構造字元串

$str
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";

echo
"原字元串:<b>".$str."</b><br>";

//按各種方式進行截取

$str1
=
substr($str,5);

echo
"從第5個字元開始取褲枝鍵至最後:".$str1."<br>";

$str2
=
substr($str,9,4);

echo
"從第9個字元開始取4個字元:".$str2."<br>";

$str3
=
substr($str,-5);

echo
"取倒胡巧數5個字元:".$str3."<br>";

$str4
=
substr($str,-8,4);

echo
"從倒數第8個字元開始向後取4個字元:".$str4."<br>";

$str5
=
substr($str,-8,-2);

echo
"從倒數第8個字元開始取到倒數第2個字元為止:".$str5."<br>";
?>
支持中英文混合截取,代碼如下:
復制代碼
代碼如下:<?php
/*
------------------------------------------------------
參數:
$str_cut
需要截斷的字元串
$length
允許字元串顯示的最大長度

程序功能:截取全形和半形(漢字和英文)混合的字搭叢符串以避免亂碼
------------------------------------------------------
*/
function
substr_cut($str_cut,$length)
{

if
(strlen($str_cut)
>
$length)

{

for($i=0;
$i
<
$length;
$i++)

if
(ord($str_cut[$i])
>
128)
$i++;

$str_cut
=
substr($str_cut,0,$i)."..";

}

return
$str_cut;
}
?>
希望本文所述對大家的php程序設計有所幫助。

② PHP中使用substr截取字元串出現中文亂碼問題該怎麼辦

1、按位置截取中文字元串就緩余是mb_substr($string,$start[,$length][,encode]);防止中文截取時出現亂碼

2、拿核注意:擾敏滾用到mb_開頭的函數時候,這些函數依賴於php的php_mbstring.dll擴展文件,文件在php.ini中

③ 請教php高手,關於substr()函數的使用

substr只提供字元提取功能,沒有提供字元過濾功能
如果你要過濾數字的話,可以用str_replace函數
如果你要過濾數字就這么寫
$number = array("0","1","2","3","4","5","渣緩6","7","8","備坦9");
str_replace($number,"",substr(md5(time()),0,5))

這樣,就是提當前時間的md5前5個字元,如果存在數字則將其替換成空字元串仿梁桐 比如2ef3c將變成 efc
字幕方法類似!

如果判斷mysql有重復記錄得看你資料庫結構和你這個重復的標準是什麼,沒具體例子,不好說明

④ php怎麼截取字元後面幾個字元

$str1 = substr($str,5)截取後面5個字元。

1:$str1 = substr($str,5);這句是從第5個字元開始截取到最後strlen($str) 這句是獲取字元串長度假設你要截取後面3個字元,那就這樣寫 $str1 = substr($str,(strlen($str)-3))。

2:只要判斷字元串1與字元串2之前的一個stripos位置然後再使用substr開始截取就可以了。

3:PHP中的substr() 函數可以實現 substr() 函數返回字元串的一部分,substr(string,start,length)。

4:string 必需,規定要返回其中一部分的字元串,start 必需,規定在字元串的何處開始,正數 - 在字元串的指定位置開始 負數 - 在從字元串結尾的指定位置開始 0 - 在字元串中的第一個字元處開始 length 可選,規定要返回的字元串長度。默認是直到字元串的結尾,正數 - 從 start 參數所在的位置返回負數 - 從字元串末端返回。

⑤ php中有幾個截取字元創的函數

函數名 作用 php版本
chr() 從指定的 ASCII 值返回字元。 3
chunk_split() 把字元串分割為一連串更小的部分。 3
count_chars() 返回字元串所用字元的信息。 4
explode() 把字元串打散為數組。 3
implode() 把數組元素組合為一個字元串。 3
join() implode() 的別名。 3
levenshtein() 返回兩個字元串之間的 Levenshtein 距離。 3
localeconv() 返回包含本地數字及貨幣信息格式的數組。 4
ltrim() 從字元串左側刪除空格或其他預定義字元。 3
md5() 計算字元串的 MD5 散列。 3
md5_file() 計算文件的 MD5 散列。 4
metaphone() 計算字元串的 metaphone 鍵。 4
money_format() 把字元串格式化為貨幣字元串。 4
nl_langinfo() 返回指定的本地信息。 4
nl2br() 在字元串中的每個新行之前插入 HTML 換行符。 3
number_format() 通過千位分組來格式化數字。 3
parse_str() 把查詢字元串解析到變數中。 3
print() 輸出一個或多個字元串。 3
printf() 輸出格式化的字元串。 3
similar_text() 計算兩個字元串的匹配字元的數目。 3
sprintf() 把格式化的字元串寫寫入一個變數中。 3
str_ireplace() 替換字元串中的一些字元。(對大小寫不敏感) 5
str_replace() 替換字元串中的一些字元。(對大小寫敏感) 3
str_split() 把字元串分割到數組中。 5
strcasecmp() 比較兩個字元串。(對大小寫不敏感) 3
strchr() 搜索字元串在另一字元串中的第一次出現。strstr() 的別名 3
strcspn() 返回在找到任何指定的字元之前,在字元串查找的字元數。 3
stripos() 返回字元串在另一字元串中第一次出現的位置(大小寫不敏感) 5
stristr() 查找字元串在另一字元串中第一次出現的位置(大小寫不敏感) 3
strlen() 返回字元串的長度。 3
strpbrk() 在字元串中搜索指定字元中的任意一個。 5
strpos() 返回字元串在另一字元串中首次出現的位置(對大小寫敏感) 3
strrchr() 查找字元串在另一個字元串中最後一次出現的位置。 3
strripos() 查找字元串在另一字元串中最後出現的位置(對大小寫不敏感) 5
strrpos() 查找字元串在另一字元串中最後出現的位置(對大小寫敏感) 3
strspn() 返回在字元串中包含的特定字元的數目。 3
strstr() 搜索字元串在另一字元串中的首次出現(對大小寫敏感) 3
strtok() 把字元串分割為更小的字元串。 3
strtr() 轉換字元串中特定的字元。 3
substr() 返回字元串的一部分。 3
substr_compare() 從指定的開始長度比較兩個字元串。 5
substr_count() 計運算元串在字元串中出現的次數。 4
substr_replace() 把字元串的一部分替換為另一個字元串。 4
ucwords() 把字元串中每個單詞的首字元轉換為大寫。 3
wordwrap() 按照指定長度對字元串進行折行處理。 4

⑥ PHP怎麼用substr函數截取字元串中的某部分

1、從第4個字元開始截取到字元串末尾,類祥猜似asp中的left:

輸出: lacecake.com

2、PHP substr函數從右邊瞎纖截取3個字元,類似asp中的right:

輸出:.com

3、PHP substr函數從第4個字元開始截取3個字元:

輸出:lac

4、有時我們知道一個字元串的開始和結尾,中間是不定長的字元,這時除了用PHP substr函數的正則外我們還可以用substr實現(當然要得到中間的字元方法有N種,在此只是舉例substr的應用):

本例磨宴仿去掉開頭4個字元和結尾3個字元,輸出中間的字元串:

輸出:lacecake.

⑦ PHP中使用substr截取字元串出現中文亂碼問題該怎麼辦

給你一個我自己寫的字元串截取類,不會出現亂攔飢碼。

function displaystr($str, $start, $lenth){
$len = strlen($str);
$r = array();
$n = 0;
$m = 0;
for($i = 0; $i < $len; $i++) {
$x = substr($str, $i, 1);
$a = base_convert(ord($x), 10, 2);
$a = substr('00000000'.$a, -8);
if ($n < $start){
if (substr($a, 0, 1) == 0) {
}elseif (substr($a, 0, 3) == 110) {
$i += 1;
}elseif (substr($a, 0, 4) == 1110) {
$i += 2;
}
$n++;
}else{
if (substr($a, 0, 1) == 0) {
$r[ ] = substr($str, $i, 1);
}elseif (substr($a, 0, 3) == 110) {
$r[ ] = substr($str, $i, 2);
$i += 1;
}elseif (substr($a, 0, 4) == 1110) {
$r[ ] = substr($str, $i, 3);
$i += 2;
}else{
$r[ ] = '';
}
if (++$m >= $lenth){
break;
}
}
}
return join('',$r);
}
echo $str="你在找php截取字元串的函數嗎?測試一下吧,且聽風吟福利吧的地數粗址是薯衡鎮3tii.com,你試試看會不會出現亂碼!不區分大小寫,不區分數字字母中文";
echo '';
echo displaystr($str,3,8);

⑧ PHP怎麼用substr函數截取字元串中的某部分

語法substr(string,開始截取的位置,截取長度);


示例

$string='ABCDEFGH';
//分別下表是01234567
$string=substr($string,2,3);
echo$string;//輸出CDE

缺點就是不能截取中文,截取中文有時候會亂碼

⑨ PHP怎麼用substr函數截取字元串中的某部分

示例:substr("hello world",6,4)==>"world"
語法
substr(string,start,length)
參數

描述:
string 必需。規定要返回其中一部分的字元串。

start
必需。規定在字元串的何處開始。
正數 - 在字元串的指定位置開始
負數 - 在從字元串結尾開始的指定位置開始
0 - 在字元串中的第一個字元處開始
length

可選。規定被返回字元串的長度。默認是直到字元串的結尾。
正數 - 從 start 參數所在的位置返回的長度
負數 - 從字元串末端返回的長度

⑩ PHP中使用substr截取字元串出現中文亂碼問題該怎麼辦

在PHP程序開發中,經常會執行字元串的截取操作,比如輸出信息列表時,標題不宜過長,列印文章摘要時,也要執行一系列的字元串截取操作。遇到這些需求時,我春皮們經常會想到使用substr()方法來實現,substr()對全英文字元串的截取是比較適合的。

但字元串只要出現中文字元,就有可能導致PHP
substr中文亂碼,因為中文UTF-8編碼,每個漢字佔3位元組,而GB2312佔2位元組,英文佔1位元組,截取位數不準確,substr()硬生生地將
一個中文字元「鋸」成兩半,造成斷開的字元會把其後的..拉過來一起做一個字,所以出現了PHP substr中文亂碼。

substr --- 取得部份字元串

語法 : string substr (string string, int start [, int length])

說明 :

substr( )傳回 string的一部份字元串,由參數 start和 length指定。

如果 start是正數扒搏差,傳回的字元串將會從 string的第 start個字元開始。

Example :

<?php
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>

如果 start是負數,傳回的字元串將會從 string結尾的第 start個字開始。

Example :

<?php
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>

如果有給予參數 length而且是正數時,傳回的字元串將會從 start傳回 length個字元。
如果有給予參數 length而且是負數時,傳回的字元串將會結束於 string結尾的第 length個字元。

Example :

<?php
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>

對於英文沒有問題,我們測試一個中文

<?php
$rest = substr ("中國人", 1, -1); // returns "fdsafsda" 就是亂碼了
?>

這種截取字元的結果,肯定不是我們想要的結果,這種出現PHP substr中文亂碼的銀腔情況,可能會導致程序無法正常運行。解決辦法主要有兩種:

一、使用mbstring擴展庫的mb_substr()截取就不會出現亂碼了。

可以用mb_substr()/mb_strcut()這個函數,mb_substr()/mb_strcut()的用法與substr()相似,
只是在mb_substr()/mb_strcut最後要加入多一個參數,以設定字元串的編碼,但是一般的伺服器都沒打開
php_mbstring.dll,需要在php.ini在把php_mbstring.dll打開。

<?php
echo mb_substr("php中文字元encode",0,4,"utf-8");
?>

如果未指定最後一個編碼參數,會是三個位元組為一個中文,這就是utf-8編碼的特點,若加上utf-8字元集說明,所以,是以一個字為單位來截取的。

使用的時候要注意php文件的編碼,和網頁顯示時的編碼。使用這個mb_substr方法要事先知道字元串的編碼,如果不知道編碼,就需要判斷,mbstring庫還提供了mb_check_encoding來檢驗字元串編碼,但還不完善。

PHP 自帶幾種字元串截取函數,其中常用到的就是 substr 和 mb_substr。前者在處理中文時,GBK 為 2 個長度單位,UTF 為 3 個長度單位,後者指定編碼後,一個中文即為 1 個長度單位。

substr 有時會截 1/3 個中文或半個中文,會顯示亂碼,相對來說 mb_substr 更適合我們使用。不過有時候 mb_substr
就顯得不那麼好用了。例如我要顯示一個小圖片的簡要信息,5 個中文正好,超過 5 個就截取前4再加上
」…」,這樣處理中文是沒問題了,可是處理英文或數字,這樣截取就太短了。

二、自己書寫截取函數,但效率不如用mbstring擴展庫來得高。下面是ecshop裡面的截取UTF-8編碼下字元串的函數。

function sub_str($str, $length = , $append = true)
{
$str = trim($str);
$strlength = strlen($str);
if ($length == || $length >= $strlength)
{
return $str; //截取長度等於或大於等於本字元串的長度,返回字元串本身
}
elseif ($length < ) //如果截取長度為負數
{
$length = $strlength + $length;//那麼截取長度就等於字元串長度減去截取長度
if ($length < )
{
$length = $strlength;//如果截取長度的絕對值大於字元串本身長度,則截取長度取字元串本身的長度
}
}
if (function_exists('mb_substr'))
{
$newstr = mb_substr($str, , $length, EC_CHARSET);
}
elseif (function_exists('iconv_substr'))
{
$newstr = iconv_substr($str, , $length, EC_CHARSET);
}
else
{
//$newstr = trim_right(substr($str, , $length));
$newstr = substr($str, , $length);
}
if ($append && $str != $newstr)
{
$newstr .= '...';
}
return $newstr;
}

熱點內容
php辦公系統 發布:2025-07-19 03:06:35 瀏覽:900
奧德賽買什麼配置出去改裝 發布:2025-07-19 02:53:18 瀏覽:42
請與網路管理員聯系請求訪問許可權 發布:2025-07-19 02:37:34 瀏覽:189
ipad上b站緩存視頻怎麼下載 發布:2025-07-19 02:32:17 瀏覽:844
phpcgi與phpfpm 發布:2025-07-19 02:05:19 瀏覽:527
捷達方向機安全登錄密碼是多少 發布:2025-07-19 00:57:37 瀏覽:694
夜魔迅雷下載ftp 發布:2025-07-19 00:39:29 瀏覽:99
增值稅票安全接入伺服器地址 發布:2025-07-19 00:20:45 瀏覽:486
solidworkspcb伺服器地址 發布:2025-07-18 22:50:35 瀏覽:823
怎麼在堆疊交換機里配置vlan 發布:2025-07-18 22:42:35 瀏覽:630