PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。 取得字串長度 <?...

顯示具有 PHP字串 標籤的文章。 顯示所有文章
顯示具有 PHP字串 標籤的文章。 顯示所有文章

2018年2月16日 星期五

PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。

取得字串長度
<?php
$str_len = strlen('abc');
echo '長度:'.$str_len;
?>
輸出結果:
長度:3

在某字串中,找出一個子字串第一次出現的位置
<?php
$str = 'abcdefg';
$str_pos = strpos($str, 'd');
echo '位置:'.$str_pos;
?>
輸出結果:
位置:3

在某字串中,找出一個子字串最後一次出現的位置
<?php
$str = 'abcdeDdfg';
$str_rpos = strrpos($str, 'd');
echo '位置:'.$str_rpos;
?>
輸出結果:
位置:6

找出一個不區分大小寫的子字串第一次出現的位置
<?php
$str = 'abDcdefg';
$str_ipos = stripos($str, 'd');
echo '位置:'.$str_ipos;
?>
輸出結果:
位置:2

找出一個不區分大小寫的子字串最後一次出現的位置
<?php
$str = 'abDcdefDg';
$str_ripos = strripos($str, 'd');
echo '位置:'.$str_ripos;
?>
輸出結果:
位置:7

字串取代
表示取代所有已找到的字串為新字串
<?php
$str = "abc中文def";
$new_str = str_replace('中文', '功夫', $str);
echo '新字串:'.$new_str;
?>
輸出結果:
新字串:abc功夫def

字串取代 (不區分大小寫)
<?php
$str = "abDcDdefd";
$new_str2 = str_ireplace('d', 'x', $str);
echo '新字串:'.$new_str2;
?>
輸出結果:
新字串:abxcxxefx


PHP字串去除空白與字串轉大小寫

PHP字串去除空白可以依編寫程式的需要來去除左右邊的空白,亦或是只去除左邊還是右邊的空白。也可以對字串進行完全大寫或小寫的轉換,或是在字串中對第一個字元轉大寫或小寫,如果你要將字串裡面的每一個字的的第一個字元都轉成大寫也是有對映的函數可以運用。

去除字串左右空白
<?php
$str = ' abc ';
echo trim($str);
?>
輸出結果:
abc

去除字串左邊空白
<?php
$str = ' abc ';
echo ltrim($str);
?>
輸出結果:
abc

去除字串右邊空白
<?php
$str = ' abc ';
echo rtrim($str);
?>
輸出結果:
 abc

字串轉小寫
<?php
$str = 'ABC';
echo strtolower($str);
?>
輸出結果:
abc

字串轉大寫
<?php
$str = 'abc';
echo strtoupper($str);
?>
輸出結果:
ABC

字串的字首大寫
<?php
$str = 'abc';
echo ucfirst($str);
?>
輸出結果:
Abc

字串的字首小寫
<?php
$str = 'ABC';
echo lcfirst($str);
?>
輸出結果:
aBC

字串中的每一個字的開頭字元大寫
<?php
$str = 'apple newsletter';
echo ucwords($str);
?>
輸出結果:
Apple Newsletter





PHP字串分割與組合函數

字串的分割、組合函數,在開發PHP的程式設計當中是經常運用的程式開發技巧,可以將一個字串切割成多段子字串,再儲存於陣列中。相反的,也可以將一個陣列內的元素,重新組合成為一個字串,亦或直接從CSV檔案中取出每一個資料元素合成一個新的陣列。

透過字串來分割字串
<?php
$arr1 = explode("|", "A|B|C");
print_r($arr1);
?>
輸出結果:
Array ( [0] => A [1] => B [2] => C )


組合陣列為一個字串
<?php
$arr1 = array('A','B','C');
$str1 = implode("|", $arr1);
echo $str1.'<br/>';

// 表示implode的別名
$str2 = join("|", $arr1);
echo $str2;
?>
輸出結果:
A|B|C
A|B|C


剖析CSV檔案格式為一個陣列
<?php
$csv_str = "a,b,c,d,e";
$arr2 = str_getcsv($csv_str);
print_r($arr2);
?>
輸出結果:
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )


轉換一個字串為一個陣列
<?php
// 依3個字元長度進行字串切割
$str3 = "abcdef";
$arr3 = str_split($str3,3);
print_r($arr3);
?>
輸出結果:
Array ( [0] => abc [1] => def )


剖析字串為變數
主要是將PHP網頁請求的$_GET或$_POST方法所傳入的Query String的網頁傳遞的編碼參數進行格式化的陣列轉換。
<?php
// 表單請求的Query String
$str4 = "user=monkey&phone=7533967";
$arr4 = parse_str($str4, $result);
print_r($result);
?>
輸出結果:
Array ( [user] => monkey [phone] => 7533967 )