2017-06-13 6 views
0

誰にも3つの連続した行と一致するように、PHPの関数があり、私は、ファイルなどに3つの連続した行に一致するためにPHPの関数やメソッドを探していますアドバイスを与えることができ、ファイル

php is fun, 
linux is interesting, 
Windows is fun, 
Ubuntu is ubuntu, 
Perl is fun, 

どのようにすることができます私は上記のテキストの下にマッチする?

linux is interesting, 
Windows is fun, 
Ubuntu is ubuntu, 

現時点では、私はそれを1行にすることができます。

+0

上記の文字列に下のテキストが存在することを確認しますか? –

+0

'file()'は配列に値を入れ、カンマで検索文字列を 'explode()'した後、検索配列をループして一致するものを探します – rtfm

+0

"Linuxは面白いです、Windowsは楽しいです、Ubuntuはubuntuです"もちろん3行です。しかし、それは単一の文字列です。ではない?文字列比較機能を使うだけです。 –

答えて

0

3通りの方法があります。あなただけの単語のいずれかが存在するかどうかを知る必要がある場合はpreg_match_all()

$str = "php is fun, linux is interesting, Windows is fun, Ubuntu is ubuntu, Perl is fun,"; 
$res = preg_match_all("/(linux is interesting|Windows is fun|Ubuntu is ubuntu)/", $str); 
if ($res) 
    echo "Text is founded in string"; 

とまずregexを使用して

、上記のようにpreg_matchを使用しています。あなたは言葉のいずれかのすべての出現箇所を一致させる必要がある場合は、文字列が特定の単語が含まれているか、いない場合、示しstripos()を使用してpreg_match_all|パイプ記号は第二or

示して使用し、含まれている場合、それは開始を返します単語の位置。

print_r(stripos($str, "Windows is fun")) 

Thridlyあなたは,区切り文字を使用して文字列の文章を分離している場合、それはその後、別の配列で一つずつ一致配列に文字列を変換するためにexplode()を使用することによって可能にすることができます。

$str = "php is fun, linux is interesting, Windows is fun, Ubuntu is ubuntu, Perl is fun,"; 
$exp = explode(",", $str); 

$match = array("linux is interesting", "Windows is fun", "Ubuntu is ubuntu"); 

foreach ($exp as $key => $value) { 
    foreach ($match as $key_match => $value_match) { 
     if ($value === $value_match) { 
      echo "String match founded <br>"; 
     } 
    } 
} 
+0

ありがとう、私は3つの正確な3行に一致するように最初の方法は完全に動作します。 – sawe

+0

これを受け入れられた回答としてマークして、他の人がこれを助けてくれるようにしてください。 –

関連する問題