我的PHP脚本需要一些帮助。 所以,这是交易。
我有一个preg_match,它检查.txt文件中的以下文本是否每30分钟左右更改一次:LYBE_TWR,LYBE_APP,LYBA_CTR,LYPG_TWR,LYPG_APP,LYTV_TWR,LYNI_APP)
如果它们存在,它会完美运行并获得上述字符串。
但是我需要做更多的事情并检查已找到七种组合中的哪一种,因为并非所有组合都在任何时候都存在。 例: 当前文本文件包含LYBE_TWR,LYBE_APP,LYPG_TWR。 preg_match做了它的事情,我可以回应3个值,但我需要这个。
LYBE_TWR : PRESENT/NOT PRESENT
LYBE_APP: PRESENT/NOT PRESENT
LYBA_CTR PRESENT/NOT PRESENT
LYPG_TWR PRESENT/NOT RESENT
etc.
因此,如果在文本文件中找到它回声存在,如果没有它回声不存在。 正确的结果将是:
LYBE_TWR : PRESENT
LYBE_APP: PRESENT
LYBA_CTR NOT PRESENT
LYPG_TWR PRESENT
如果我这样做if ($string == "LYBE_TWR") { echo 'present'; } else { echo 'not present'}
它将回显LYBE_TWR
的正确值,但它会说不适用于后者,因为它们实际上并不是我想要的那个。
我希望你理解,因为我自己不再确定(rofl)
编辑:这是当前的代码。请记住它仍然是WIP,所以没有完成,会有一些错误http://pastebin.com/z1r4A78E 感谢。
答案 0 :(得分:0)
这是代码,假设您感兴趣的是字符串出现在您的文件中,而不是在行中。我把字符串分成前缀和后缀,我忽略了任何数值。为了便于阅读,我没有复制所有代码
$prefixes = array("LYBA", "LYBE", "LYPG", "LYNI", "LYTV");
$suffixes = array("TWR", "APP", "CTR");
foreach($prefixes as $prefix)
{
foreach($suffixes as $suffix)
{
$results[$prefix."_".$suffix] = 0;
}
}
if(preg_match('/^('.implode("|",$prefixes).'|)_[A-Z0-9]*_*('.implode("|",$suffixes).')/', $line, $matches))
{
(... your code ...)
$match_string = $matches[1]."_".$matches[2];
$results[$match_string]++;
}
foreach($results as $key => $value)
{
echo $key;
if($value > 0)
{
echo " PRESENT";
}
else
{
echo " NOT PRESENT";
}
echo "<br/>";
}