substr():字串截取
string substr(string $string, int $start [, int $length ])
$start ≥ 0:從開頭第 $start 個字元開始 (0 索引)
$start < 0:從結尾往前第 |$start| 個字元開始
$length > 0:最大回傳長度
$length < 0:從結尾往前排除 |$length| 個字元
<?php
echo substr("abcdef", 1, 3); // "bcd"
echo substr("abcdef", -2); // "ef"
echo substr("abcdef", -3, 1); // "d"
echo substr("abcdef", 1, -1); // "bcde"
explode():字串分割為陣列
array explode(string $separator, string $string [, int $limit ])
$separator:分隔符
$limit > 0:最多回傳 $limit 個元素,最後元素包含剩餘字串
$limit < 0:回傳除最後 |$limit| 個元素外的所有元素
$limit = 0:視同 1
<?php
$str = "abc|bck|fhq|nui";
print_r(explode("|", $str));
/* 輸出:
Array (
[0] => abc
[1] => bck
[2] => fhq
[3] => nui
)
*/
實戰組合:解析日期時間字串
<?php
$date = "2006-10-12 16:50:49";
// 使用 split (已棄用) 或 preg_split
list($year, $month, $day, $hour, $minute, $second) = preg_split('/[-: ]/', $date);
echo "北京時間:{$year}年{$month}月{$day}日{$hour}時{$minute}分{$second}秒";
// 輸出:北京時間:2006年10月12日16時50分49秒
現代化建議
split()、ereg() 等 POSIX 正則函數已移除 (PHP 7+),改用 preg_split()、preg_match()
- 固定格式日期解析優先用
DateTime::createFromFormat()
- CSV 解析用
str_getcsv() 而非 explode() (可處理引號逸出)