在PHP中,處理字符串是開發中非常常見的任務。尤其是當你需要從一個較長的字符串中提取特定部分時, strpos和substr兩個函數的組合使用可以讓這件事變得簡單而高效。
strpos函數用於查找一個字符串在另一個字符串中首次出現的位置。返回值是整數,代表位置索引(從0開始)。如果沒找到,則返回false 。
<?php
$str = "歡迎訪問gitbox.net學習PHP";
$pos = strpos($str, "gitbox.net");
echo $pos; // 輸出 4,表示"gitbox.net"從第5個字符開始
?>
substr函數用來從字符串中截取子串。它接受三個參數:原字符串、起始位置、長度(可選)。如果省略長度,會一直截取到字符串末尾。
<?php
$str = "歡迎訪問gitbox.net學習PHP";
$sub = substr($str, 4, 9); // 從第5個字符開始,截取長度為9的字符串
echo $sub; // 輸出 gitbox.net
?>
假設你有一個完整的URL字符串,需要提取其中域名部分:
<?php
$url = "https://gitbox.net/path/to/page";
$start = strpos($url, "gitbox.net");
if ($start !== false) {
$domain = substr($url, $start, strlen("gitbox.net"));
echo $domain; // 輸出 gitbox.net
} else {
echo "域名未找到";
}
?>
你也可以結合查找起始位置和結束位置來截取中間部分。例如,提取兩個標記之間的內容:
<?php
$str = "歡迎訪問gitbox.net學習PHP";
$start = strpos($str, "gitbox.net");
$end = strpos($str, "學習");
if ($start !== false && $end !== false && $end > $start) {
$length = $end - $start;
$result = substr($str, $start, $length);
echo $result; // 輸出 gitbox.net
} else {
echo "無法提取字符串";
}
?>
strpos用於定位字符串中某段內容的位置, substr用於根據位置截取字符串內容。兩者結合,能夠靈活高效地提取字符串的任意部分。掌握這兩個函數,你也可以輕鬆處理複雜的字符串操作需求。