0

私はphpが初めてで、おそらくこの質問は以前に尋ねられたことがありますが、具体的に何を検索すればよいかわかりません。質問は次のとおりです

次のような文字列があった場合

   $adam = "this is a very long long string in here and has a lot of words";

この文字列内で「long」という単語と「here」という単語の最初の出現を検索したい

次に、その間にあるすべてのものを選択し、新しい文字列に保存します

結果は

 $new_string = "long long string in here"

ちなみに、文字列の長さと内容はわかりませんが、私が知っているのは、「長い」という単語と「ここ」という単語があり、その間に単語が欲しいということだけです..

4

4 に答える 4

1

シンプルstrpos、、トリックを行いsubstrますstrlen

コードは次のようになります

$adam = "this is a very long long string in here and has a lot of words";
$word1="long";
$word2="here";

$first = strpos($adam, $word1);
$second = strpos($adam, $word2);

if ($first < $second) {
    $result = substr($adam, $first, $second + strlen($word2) - $first);
}

echo $result;

これが実際の例です

于 2013-02-23T20:39:52.817 に答える
1

これらの関数を使用してそれを行います。

  • strpos() - 文字列内の単語を検索するために使用します
  • substr() - 文字列を「カット」するために使用します
  • strlen() - 文字列の長さを取得するために使用します

'long''word'の位置を見つけ、 を使用して文字列をカットしますsubstr

于 2013-02-23T20:33:09.997 に答える
0

正規表現でそれを行う方法は次のとおりです。

$string = "this is a very long long string in here and has a lot of words";
$first = "long";
$last = "here";

$matches = array();

preg_match('%'.preg_quote($first).'.+'.preg_quote($last).'%', $string, $matches);
print $matches[0];
于 2013-02-23T20:44:38.773 に答える
0

これがスクリプトです。コピーして貼り付ける準備ができています;)

$begin=stripos($adam,"long");  //find the 1st position of the word "long"
$end=strripos($adam,"here")+4; //find the last position of the word "here" + 4 caraters of "here"
$length=$end-$begin;
$your_string=substr($adam,$begin,$length);
于 2013-02-23T20:37:25.173 に答える