我有一個輸入字符串。格式如下:PHP查找並替換字符串的一部分
This;is;my;long
我需要刪除這個附錄:;string
- 我
This;is;my;long;string
任何快速的解決方案(有很多的字符串)使用PHP得到這個輸出字符串不知道附錄的長度:這裏的任何字母。
謝謝!
我有一個輸入字符串。格式如下:PHP查找並替換字符串的一部分
This;is;my;long
我需要刪除這個附錄:;string
This;is;my;long;string
任何快速的解決方案(有很多的字符串)使用PHP得到這個輸出字符串不知道附錄的長度:這裏的任何字母。
謝謝!
<?php
$string='This;is;my;long;string';
str_replace(';string','',$string); ?>
如果您持續使用;
作爲分隔符,你可以用explode()
這個字符串,刪除最後一個索引,然後用implode()
重新加入字符串:
$str = "This;is;my;long;string";
$strArr = explode(";", $str);
unset($strArr[count($strArr) - 1]);
$newStr = implode(";", $strArr);
UPDATE
爲了使這項工作任何搜索的字符串,可以使用array_keys()
:
$str = "This;is;my;long;string";
$strArr = explode(";", $str);
$searchStr = "string";
$caseSensitive = false;
$stringLocations = array_keys($strArr, $searchStr, $caseSensitive);
foreach ($stringLocations as $key) {
unset($strArr[$key]);
}
$newStr = implode(";", $strArr);
或者更簡單些,你可以使用array_diff()
:
$str = "This;is;my;long;string";
$strArr = explode(";", $str);
$searchStr = array("string");
$newArray = array_diff($searchStr, $strArr);
$newStr = implode(";", $newArray);
如果您知道;string
總是存在的(大部分時間無論如何),你可以使用RTRIM:
$trimmed = rtrim($text, ";string");
這將從字符串中刪除僅尾隨;string
。除非它存在於字符串的末尾,否則不會被刪除。
$str = rtrim($str, ';string');
不知道你想刪除的作品是否始終在開始或不是。
$array = explode(";" , $string);
foreach ($array as $key => $arr) {
if ($arr == "string") {
unset($array[$key]);
break;
}
echo implode(";" , $array);
}
[你嘗試過什麼(http://whathaveyoutried.com/)?此外,[你真的*試圖做什麼](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? – ghoti