2012-09-05 50 views
0

我有一個輸入字符串。格式如下:PHP查找並替換字符串的一部分

This;is;my;long 

我需要刪除這個附錄:;string

  • This;is;my;long;string 
    

    任何快速的解決方案(有很多的字符串)使用PHP得到這個輸出字符串不知道附錄的長度:這裏的任何字母。

謝謝!

+1

[你嘗試過什麼(http://whathaveyoutried.com/)?此外,[你真的*試圖做什麼](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? – ghoti

回答

4
$str = substr($string, 0, strrpos($string, ';')); 
+0

好的解決方案!謝謝! – user889349

2

str_replace

<?php 
$string='This;is;my;long;string'; 
str_replace(';string','',$string); ?> 
+0

這是有點短視的。它只適用於這種情況。 – Matt

+0

您可以使用字符串或字符串數​​組來調整str_replace的第一個參數,無論您需要替換哪個參數。這個問題沒有說明最後的情況,它總是最後一個元素,它總是用';'來劃定界限。 - 他想要的;絃線去除,這是它,可以很容易地適應大多數其他情況。 – Mark

0

如果字符串格式總是這樣,你不能去錯substr - 可能是最快的方式

$str = 'This;is;my;long;string'; 
$str = substr($str, 0, -7); 
+0

這有點短視。它只適用於這種情況。 – Matt

+0

我知道,但也許這就是他想要的。他提到速度,並且substr比str_replace更快 – nick

5

如果您持續使用;作爲分隔符,你可以用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); 
+0

@Fluffeh我意識到這將會出現,所以我更新了答案。 – Matt

+0

對你很好,先生! – Fluffeh

+0

不要使用內爆/爆炸,因爲它會太慢。 – Nin

1

如果您知道;string總是存在的(大部分時間無論如何),你可以使用RTRIM:

$trimmed = rtrim($text, ";string"); 

這將從字符串中刪除僅尾隨;string。除非它存在於字符串的末尾,否則不會被刪除。

2
$str = rtrim($str, ';string'); 
1

不知道你想刪除的作品是否始終在開始或不是。

$array = explode(";" , $string); 
foreach ($array as $key => $arr) { 
    if ($arr == "string") { 
     unset($array[$key]); 
     break; 
    } 
    echo implode(";" , $array); 
} 
相關問題