それは私にとって奇妙なのですが、なぜstristr
にデータが一致しませんか?常に印刷されますnot found
STRISTRが文字列のデータと一致しません
$data = 'Saturday';
$find = 'sat,sun';
if(stristr($data, $find))
echo 'found';
else
echo 'not found';
それは私にとって奇妙なのですが、なぜstristr
にデータが一致しませんか?常に印刷されますnot found
STRISTRが文字列のデータと一致しません
$data = 'Saturday';
$find = 'sat,sun';
if(stristr($data, $find))
echo 'found';
else
echo 'not found';
stristr()
文字列の最初の出現を検索します。 stristr()
の代わりにpreg_match
を使用することもできます。
は、あなたが最良の結果を得るためstripos代わりのstristrを使用する必要があります
<?php
$find = "sat,sun";
$data = 'Sat';
if (preg_match("/\b".$data."\b/i", $find, $match))
print "Match found!";
else
print "not match";
?>
ありがとうございます。あなたの答えスイートは私の最も必要なものです。 –
「土曜日」が見つかった場合は、結果が表示されます。それは$data
で「座っ日」を見つけようとしますと、結果「が見つかりません」と表示されるように、あなたのケースで
それは、一言に「座っ日」を検討します。
stristr()
関数は、別の文字列の中で最初に現れた文字列を検索します。したがって、検索文字列を異なるものにする必要があります。このためには、$find
文字列を配列にしてループさせる必要があります。それでsat
とsun
を別の文字列として取得し、単純にコードを使って一致させることができます。
$data = 'Saturday';
$find = 'sat,sun';
$find_arr = explode(",", $find);
foreach($find_arr as $find_val){
if(stristr($data, $find_val))
echo 'found';
else
echo 'not found';
}
結果は、第found
および第二not found
ためであるべきです。
を試してみてください。 ストライプ機能は、stristrよりも速く、メモリを消費しません。
stripos()針が見つからない場合はFALSEを返します。だから、あなただけocurrencesがある場合は、次のようにそれを使用する、知る必要がある場合:
echo stripos($data, 'sat,sun') !== false ? 'found' : 'not found';
コメント要求からソリューションコード編集:
あなたの$データ値が座っているかどうかを確認OR日、実行するにはそのループの中で:
$data = 'Sunday';
$weekend = 'sat,sun';
$days = explode(',', $weekend);
$index = 0;
$found = false;
while (!$found && isset($days[$index])) {
$found = (stripos($data,$days[$index]) !== false) ? true : false;
$index++;
}
echo $found ? 'found' : 'not found';
解決策はまだ「見つかりません」と表示されます。 –
私はstristrの代わりにstriposを使用してあなたのリクエストに出席するソリューションコードを書いた –
この1つのコード
$f = 'Saturday';
$data = 'sat,sun';
$find = strtolower(substr($f, 0,3));
$str = stristr($data , $find);
if($str)
echo 'found';
else
echo 'not found';
strisをお試しくださいtrは配列を与える第2のパラメータ文字列を受け取ります –
^配列ではありません – splash58
@SunilPachlangiaその文字列。 –