2012-10-30 119 views
0

我有一些包含單詞LIMIT 3, 199LIMIT 0, 100的字符串。PHP查找和字符串替換後?

基本上我想在我的字符串中替換單詞LIMIT和它之後的所有內容。

如何在PHP中執行此操作? str_replace函數只替換項目和限制的文字之後是動態/

所以它可能是

WHEN JOHN WAS TRYING HIS SQL QUERY, HE FOUND THAT LIMIT, 121 
// RETURN WOULD BE 
WHEN JOHN WAS TRYING HIS SQL QUERY, HE FOUND THAT 

WHEN JOHN TRIED LIMIT 343, 333 HE FOUND 
// RETURN WOULD BE 
WHEN JOHN TRIED 

回答

2

使用preg_replace與模式更換了LIMIT.+$/LIMIT.+$/m

也就是說:

$string = preg_replace("/LIMIT.+$/m","",$string); 
+0

完整的例子嗎?會... – TheBlackBenzKid

+0

@TheBlackBenzKid http://phpfiddle.org/main/gist/3981495 –

+0

快樂與所有的答案。謝謝 – TheBlackBenzKid

3

使用strpos找到字符串中LIMIT的位置,然後使用substr將字符串返回到該點。真的很基本的字符串操作。

或者可能使用preg_replace如果你想要一個班輪,但我不認爲這裏需要去正則表達式toolchest。

+0

這仍然是一個單行:)'substr($ string,0,strpos($ string,「LIMIT」));' –

+0

但是,只有當他的字符串中有'LIMIT等'時纔有效。 –

+0

@Asad這是正確的,但要求是LIMIT'的'發生後刪除了一切,所以如果是在有兩個或更多次,多次出現將移除第一次出現後的一切,當被刪除。 –

0

使用strstrstristr(不區分大小寫)。將只爲>= php 5.3.0

$str = strstr($your_string, 'LIMIT', true); 
+0

你能告訴我一個老版本的PHP? – TheBlackBenzKid

0

正如我建議不要使用正則表達式時,你不理解他們的版本,這裏不使用它們(待辦事項,我建議學習正則表達式一個簡單的答案,但他們AREN 「T易學):

$output = substr($input, 0, strpos($input, 'LIMIT')) 
+0

這將刪除一切,但LIMIT等 – TheBlackBenzKid

+0

@TheBlackBenzKid良好的漁獲,謝謝。我修好了它。 – Jasper

0

您可以使用strstr

$break = "LIMIT"; 
$array = array(); 
$array[] = "WHEN JOHN WAS TRYING HIS SQL QUERY, HE FOUND THAT LIMIT, 121"; 
$array[] = "WHEN JOHN TRIED LIMIT 343, 333 HE FOUND"; 

echo "<pre>"; 
foreach ($array as $value) { 
    echo strstr($value, $break, true), PHP_EOL; 
} 

輸出

WHEN JOHN WAS TRYING HIS SQL QUERY, HE FOUND THAT 
WHEN JOHN TRIED