2012-05-21 155 views
0

我有一個字符串,並希望刪除某些「點」+字組合後的所有內容。例如:PHP +修改字符串

This.Is.A.Test 

=>將成爲

This.Is.A 
+0

我有一個非常類似的功能工作在JavaScript(拆分),我正在尋找一個類似的PHP。我認爲「爆炸」可能是一種好方法,但我無法從例子[這裏]找到它(http://php.net/manual/en/function.explode.php)。 – Andrej

+0

使用strpos()獲取「.A」的位置並使用substr()獲取字符串結果。 使用PHP手冊 – IEnumerable

+0

你想要刪除* *特定的*點+單詞後或只是*最後一個*點+單詞後的所有內容?如果字符串是「This.Is.A.Test。」?它應該刪除最後一個點,還是需要後面跟一個單詞? – Travesty3

回答

1

$str = "This.Is.A.Test"; $str = substr($str, 0, strrpos($str, "."));

+1

這是我嘗試的第一個答案,它工作得很好! – Andrej

0
$result = explode('.', $str, 4); 
array_pop($result); 
implode('.', $result); 
0

我會做一些很簡單的,如:

<?php 

$string = 'This.Is.A.Test'; 

$parts = explode('.', $string); 
array_pop($parts); // remove last part 
$string = implode('.', $parts); 

echo $string; 

?> 
3

你找後特定去除一切點+字,或只是刪除最後做T +字?如果你正在尋找一個特定的詞,試試這個:

$str = "This.Is.A.Test"; 
$find = ".A"; 
$index = strpos($str, $find); 
if ($index !== false) 
    $str = substr($str, 0, $index + strlen($find)); 
echo $str; // "This.Is.A" 

針對@SuperSkunk:

如果你想整個單詞匹配,你可以這樣做:

​​
+0

它不適用於「This.Is.AB.Test」。 查看我的編輯。 – SuperSkunk

+0

@SuperSkunk:取決於OP是否真的在尋找。查看更新的答案。 – Travesty3

+0

剛纔意識到如果在字符串中找不到'$ find'(意味着'strpos'將返回false),你會得到奇怪的結果。更新了答案。 – Travesty3

0

$ POS = strpos($公頃ystack,「.A」);

$ result = substr($ haystack,0,$ pos);

...這樣的事情。