我有两个函数在执行preg_match来检查emp#和电子邮件是否有效。 如果其中一个或两个无效,则会打印到error.log 但我想以某种方式组织它......让我看看我是否知道如何尽可能简单。
假设emp#无效,那么错误日志将显示
date()
emp#
如果电子邮件无效,则错误日志将显示
date()
email
如果两者都无效,则错误日志将显示
date()
emp#
email
事情是,当两者都发生时,我不希望它打印日期两次或多于一次emp#或电子邮件无效,日期不会重复只会打印像
date()
emp#
emp#
emp$
希望我的解释有意义......我现在拥有的是
if(((isEmailAddressWellFormed($column[3]) == false)) && ((isStudentNumberWellFormed($column[0]) == false)))
{
$filehandle = fopen("./courses/path/error.log","a+") or die ("File can not be opened");
fwrite($filehandle, date("F t, Y (h:i:s a)") . PHP_EOL);
fwrite($filehandle, "Improper email address from " . $_GET["filename"] . " :" . PHP_EOL);
fwrite($filehandle, "$column[2] $column[1] $column[3]\n" . PHP_EOL);
fwrite($filehandle, "Improper student numbers from " . $_GET["filename"] . " :" . PHP_EOL);
fwrite($filehandle, "$column[2] $column[1] $column[0]\n" . PHP_EOL);
fclose($filehandle);
}
else
{
if(isEmailAddressWellFormed($column[3]) == false)
{
$filehandle = fopen("./courses/path/error.log","a+") or die ("File can not be opened");
fwrite($filehandle, date("F t, Y (h:i:s a)") . PHP_EOL);
fwrite($filehandle, "Improper email address from " . $_GET["filename"] . " :" . PHP_EOL);
fwrite($filehandle, "$column[2] $column[1] $column[3]\n" . PHP_EOL);
fclose($filehandle);
}
if(isStudentNumberWellFormed($column[0]) == false)
{
$filehandle = fopen("./courses/path/error.log","a+") or die ("File can not be opened");
fwrite($filehandle, date("F t, Y (h:i:s a)") . PHP_EOL);
fwrite($filehandle, "Improper student numbers from " . $_GET["filename"] . " :" . PHP_EOL);
fwrite($filehandle, "$column[2] $column[1] $column[0]\n" . PHP_EOL);
fclose($filehandle);
}
}
但是我知道它没有得到我想要的东西......任何简单的方法我都可以实现它?
答案 0 :(得分:1)
$errors = array();
if(!isEmailAddressWellFormed($column[3]))
{
$errors[] = "Improper email address from " . $_GET["filename"] . " :";
$errors[] = "$column[2] $column[1] $column[3]";
}
if(!isStudentNumberWellFormed($column[0]))
{
$errors[] = "Improper student numbers from " . $_GET["filename"] . " :";
$errors[] = "$column[2] $column[1] $column[0]";
}
if (!empty($errors))
{
$filehandle = fopen("./courses/path/error.log","a+") or die ("File can not be opened");
fwrite($filehandle, date("F t, Y (h:i:s a)") . PHP_EOL);
fwrite($filehandle, implode(PHP_EOL, $errors);
fclose($filehandle);
}
答案 1 :(得分:0)
有很多方法可以解决这个问题。你可以这样做的一种方式是:
$error = false;
if (!isEmailAddressWellFormed($column[3]))
{
$emailError = "Improper email address from " . $_GET["filename"] . " :" . PHP_EOL . "$column[2] $column[1] $column[3]\n" . PHP_EOL;
$error = true;
}
if (!isStudentNumberWellFormed($column[0]))
{
$studentError = "Improper student numbers from " . $_GET["filename"] . " :" . PHP_EOL . "$column[2] $column[1] $column[0]\n" . PHP_EOL;
$error = true;
}
if ($error)
{
$handle = fopen("./courses/path/error.log","a+") or die ("File can not be opened");
fwrite($filehandle, date("F t, Y (h:i:s a)") . PHP_EOL);
if (isset($emailError))
fwrite($handle, $emailError);
if (isset($studentError))
fwrite($handle, $studentError);
fclose($handle);
}
答案 2 :(得分:0)
尝试使用日志类来编写错误