0

我有一些包含单词LIMIT 3, 199or的字符串LIMIT 0, 100

基本上我想在我的字符串中替换单词 LIMIT 和它后面的所有内容。

我如何在 PHP 中做到这一点?str_replace 只替换一个项目,之后的 LIMIT 文本是动态的/

所以它可能是

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 
4

5 回答 5

3

用于strpos查找LIMIT字符串中的位置,然后用于substr返回字符串直到该点。非常基本的字符串操作。

或者preg_replace,如果你想要一个单线,也许可以使用,尽管我认为这里不需要去正则表达式工具箱。

于 2012-10-30T16:41:26.180 回答
2

LIMIT.+$preg_replace模式替换掉/LIMIT.+$/m

也就是说:

$string = preg_replace("/LIMIT.+$/m","",$string);
于 2012-10-30T16:40:35.883 回答
0

使用strstrstristr(不区分大小写)。仅适用于版本>= php 5.3.0

$str = strstr($your_string, 'LIMIT', true);
于 2012-10-30T16:44:42.233 回答
0

正如我建议不要在您不理解正则表达式时使用它们,这里有一个不使用它们的简单答案(请注意,我确实建议学习正则表达式,但它们并不容易学习):

$output = substr($input, 0, strpos($input, 'LIMIT'))
于 2012-10-30T16:48:52.797 回答
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 
于 2012-10-30T16:54:52.200 回答