0

LIMIT 3, 199またはという単語を含む文字列がいくつかありますLIMIT 0, 100

基本的に、文字列内の LIMIT という単語とその後のすべてを置き換えたいと考えています。

PHPでこれを行うにはどうすればよいですか? str_replace は項目のみを置換し、その後の LIMIT テキストは dynamic/

だからそうかもしれない

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の位置を検索し、 を使用してその時点までの文字列を返します。非常に基本的な文字列操作です。LIMITsubstr

または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

正規表現を理解していない場合は使用しないことをお勧めしますが、使用しない簡単な答えを次に示します(注意してください、正規表現を学習することをお勧めしますが、学習するのは簡単ではありません)。

$output = substr($input, 0, strpos($input, 'LIMIT'))
于 2012-10-30T16:48:52.797 に答える
0

strstror stristr(大文字と小文字を区別しない)を使用します。バージョンでのみ機能します>= php 5.3.0

$str = strstr($your_string, 'LIMIT', true);
于 2012-10-30T16:44:42.233 に答える
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 に答える