PHP csv文件查找帮助

时间:2014-02-17 10:33:53

标签: php csv lookup

我们公司的一个网站有一个页面,它运行一些代码来读取csv文件并依赖于序列号输入,返回该部分的手册列表。目前,csv文件只有两列,一列用于序列号,另一列用于零件号,以匹配文件夹中类似命名的pdf。 我们最近搬到了Sage 200并获得了一个新的零件编号清单(现有零件),并希望能够添加第三列这些新的零件代码。

我继承了这个网站并且知道很少的PHP,如果有的话,所以想想也许你们可以指出我正确的方向。 :)

我可以在页面上找到的代码是:

@$serial = $_POST['serialnobox'];
echo "You searched for serial $serial";
$file = nl2br(file_get_contents("./tkmanuals/serialnos.csv"));
if($strposition = strpos($file, "$serial")) {
    $strposition=$strposition+7;
    $br = strpos(substr($file, "$strposition", "50"),"
");
    $tspart = substr($file, "$strposition", "$br");
    $tspart = trim($tspart);
    echo "This is Track System: $tspart.
";
}
else
{
    echo "You searched for: $serial. Search Again.

非常感谢任何帮助或指示。

1 个答案:

答案 0 :(得分:0)

如果不能选择访问数据库,以下php代码(改编自http://us2.php.net/fgetcsv的示例1)可能会给你一个开始:

@$serial = $_POST['serialnobox'];
$row = 1;
if (($handle = fopen("./tkmanuals/serialnos.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        if($data[0]=="$serial") {
            echo "The first number is $data[1] and the second number is $data[2]<br>";
        }
    }
    fclose($handle);
}

您希望如何处理这些取决于您自己。我无法从您的代码中判断序列号是否为字符串 - 在这种情况下,您应该使用字符串比较而不是==符号来检查第一列data[0]中的序列号。

我会重申我建议建立一个数据库;您可以为CAD工程师创建一个简单的用户界面来添加/编辑零件和零件编号(换句话说 - “隐藏”这是用户的数据库这一事实)。您肯定最终只能获得一份信息(加上备份),这是数据完整性的关键步骤:当您拥有多份信息时,它们就会失去同步......