我将.csv文件中的员工数据导入为批量操作。有许多字段,如名字,姓氏,电子邮件,联系人号码,地址等。
数据库中的电子邮件字段是索引/唯一。所以我对它进行了验证。
但我的问题是某些行包含特殊字符,如matinées@fauts.net或débutante@peured.info[focus é]。
这将在没有错误日志的情况下意外停止php脚本执行。我还经历了Apache错误日志/ PHP错误日志,但没有错误。请帮我防止这个。
我也尝试将字符编码方案设置为UTF-8或Westorn-ISO-800等,但这不起作用。
代码段:
` $firstname = $sd[0];
if ($firstname != '' || !empty($firstname)) {
$lastname = $sd[1];
$email = $sd[2];
if ($sd[3] != '' && $sd[3] != NULL) {
$password = md5( $sd[3]);
}
$contactno = $sd[4];
$internalextension = $sd[5];
$companyid = $this->session->userdata('companyid');
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return array("status" => FALSE, "message" => "Error while Importing Employee. Please Check Your .csv "
. "file; <br/> Your file contains Invalid Email Id at Line number" . ($count + 1) . ". Email: $email");
} else {
if ($count != 500) {
$query = $query . "(NULL, '" . $firstname . "', '" . $lastname . "', '" . $email . "', "
. "'" . $password . "', '" . $salt . "', 1, '" . $contactno . "',"
. "'" . $internalextension . "', 4, " . $companyid . ", '" . my_datenow() . "'),";
} else {
$query = $query . "(NULL, '" . $firstname . "', '" . $lastname . "', '" . $email . "', "
. "'" . $password . "', '" . $salt . "', 1, '" . $contactno . "',"
. "'" . $internalextension . "', 4, " . $companyid . ", '" . my_datenow() . "');";
echo $query;
}
}
} else {
return array("status" => FALSE, "message" => "Error while Importing Employee. Please Check Your .csv file; First Name should not be blank.");
}`
答案 0 :(得分:0)
您可以在为变量赋值之前使用htmlspecialchars(),例如
$firstname = htmlspecialchars($sd[0]);
htmlspecialchars - 将特殊字符转换为HTML实体 参考:http://php.net/manual/en/function.htmlspecialchars.php