fgets 和 in_array 无法正常协同工作
fgets and in_array not working together correctly
我正在处理一个项目,其中过滤后的文本文件数据逐行导入到 SQL 数据库中。数据导入功能正常,但过滤功能不起作用。在故障排除中,我创建了以下代码以查看发生了什么。
$excludeLines = array("Doc #:", 'Title:');
$tempFile = "./temp/" . $_FILES["certFile"]["name"];
if (move_uploaded_file($_FILES["certFile"]["tmp_name"], $tempFile)) {
$importData = fopen($tempFile, "r");
while(($line=fgets($importData))!==false) {
if(trim($line) != '' && $line != NULL) {
if(in_array($line, $excludeLines)) {
echo 'Included: ';
} else {
echo 'Not included: ';
}
echo $line . "<br>";
}
}
fclose($importData);
}
结果是:不包括:文件#:
我想看的:包括:文件#:
如果有人能指出我正确的方向,将不胜感激。
fgets
包含行尾,因此您也需要将它们包含在查找数组中...
$excludeLines = array("Doc #:\n", "Title:\n"); // Assuming Unix-like line endings
...或者在匹配时去掉它们:
in_array(trim($line), $excludeLines)
我正在处理一个项目,其中过滤后的文本文件数据逐行导入到 SQL 数据库中。数据导入功能正常,但过滤功能不起作用。在故障排除中,我创建了以下代码以查看发生了什么。
$excludeLines = array("Doc #:", 'Title:');
$tempFile = "./temp/" . $_FILES["certFile"]["name"];
if (move_uploaded_file($_FILES["certFile"]["tmp_name"], $tempFile)) {
$importData = fopen($tempFile, "r");
while(($line=fgets($importData))!==false) {
if(trim($line) != '' && $line != NULL) {
if(in_array($line, $excludeLines)) {
echo 'Included: ';
} else {
echo 'Not included: ';
}
echo $line . "<br>";
}
}
fclose($importData);
}
结果是:不包括:文件#:
我想看的:包括:文件#:
如果有人能指出我正确的方向,将不胜感激。
fgets
包含行尾,因此您也需要将它们包含在查找数组中...
$excludeLines = array("Doc #:\n", "Title:\n"); // Assuming Unix-like line endings
...或者在匹配时去掉它们:
in_array(trim($line), $excludeLines)