フォーム提供の UTC 時間とフォーム提供のイベント名文字列を、ファイルから読み取った配列と一致させようとしています。問題は、一致しない場合でも常に一致しているように見えることです。ファイルの形式は常に一定であるため、二重引用符で囲まれた値を探すことになることはわかっているので、strpos() で結果を取得できなかった後、preg_match を試しました...そしてすべてに一致するようになりました。以下のコードと出力例 ($utc と $event_name) は、ここに到達した時点で既に設定されており、正しいものです):
$match1 = "/\"{$utc}\"/";
$match2 = "/\"{$event_name}\"/";
print "Match Values: $match1, $match2<p>";
foreach($line_array as $key => $value) {
print "Value = $value<p>";
if ((preg_match($match1,$value) == 1) and (preg_match($match2,$value) == 1))
{
print "Case 1 - False<p>";
} else {
print "Contains targets: $value<p>";
//code to act on hit will go here
}
}
そして、ここに戻ってくるものがあります:
Match Values: /"1371033000000"/, /"Another test - MkII "/
Value = { "date": "1357999200000", "type": "meeting", "title": "Plant and Animal Genome Conference, San Diego, CA", "description": "NCGAS to present at Plant and Animal Genome Conference, San Diego, CA", "url": "http://www.event1.com/" }
Contains targets: { "date": "1357999200000", "type": "meeting", "title": "Plant and Animal Genome Conference, San Diego, CA", "description": "NCGAS to present at Plant and Animal Genome Conference, San Diego, CA", "url": "http://www.event1.com/" }
Value = { "date": "1357693200000", "type": "meeting", "title": "Testing Addition", "description": "This is a fake event.", "url": "http://pti.iu.edu" }
Contains targets: { "date": "1357693200000", "type": "meeting", "title": "Testing Addition", "description": "This is a fake event.", "url": "http://pti.iu.edu" }
Value = { "date": "1371033000000", "type": "meeting", "title": "Another test - MkII", "description": "This is a fake event.", "url": "http://pti.iu.edu" }
Contains targets: { "date": "1371033000000", "type": "meeting", "title": "Another test - MkII", "description": "This is a fake event.", "url": "http://pti.iu.edu" }
私は最後のものだけを一致させるべきですが、それらはすべて一致します。私は正規表現で遊んでいますが、適切な魔法が見つからないようです。