【问题标题】:PHP equivalent to excel INDEX MATCH when parsing CSV解析CSV时PHP相当于excel INDEX MATCH
【发布时间】:2019-06-10 07:13:33
【问题描述】:

我正在做一个快速项目,我正在创建一个可以从任何浏览器访问的 php 网页。我只知道 PHP 函数的基础知识,所以需要一些帮助。

我想看看我是否能做的是创建一个文件,我的同事可以在其中输入产品代码,该表单将显示有关产品的相关信息。难点是信息会在excel上管理,需要更新时以CSV的形式上传到服务器。

我基本上是在寻找执行以下操作的一段代码:

  1. 网页使用 POST 获取产品代码
  2. PHP 解析电子表格的第一列并搜索产品代码
  3. 找到产品代码后,返回行号
  4. PHP 然后将行解析为数组
  5. 然后我根据需要在网页中打印出数组。

POST 功能一切正常,但在解析方面,我目前得到的最好的是:

<?php
if ( $code == "") { $codechk = $blank; } else { $codechk = $code; }
$ch = fopen("https://focus-8.com/sites/ds/prodinfo.csv", "r");
$header_row = fgetcsv($ch);

/* This will loop through all the rows until it reaches the end */
while($row = fgetcsv($ch)) { if (in_array($codechk, $row)) { echo '<div>' . implode(' | ', $row) . ' </div>'; } } ;

$code 是表单中的产品代码

$blank 是一个占位符,如果代码不存在,则强制显示错误消息。

当我在表单中输入产品代码时,这会正确打印正确的行。但是,我的知识还不够先进,无法弄清楚如何将其拉入数组而不是一次打印出来。

一旦我把它放在一个数组中,我就会把它打印在一个表格中,如下所示:

<table>
    <tr>
      <td>Product Code </th>
      <td> <?php echo $prodinfo[0] ?> </th>
    </tr>
    <tr>
      <td>Product Name</td>
      <td> <?php echo $prodinfo[1] ?> </td>
    </tr>
    <tr>
      <td>Product Weight</td>
      <td> <?php echo $prodinfo[2] ?> </td>
    </tr>
</table>

任何帮助很高兴,谢谢!

【问题讨论】:

  • 如果有更好的方法来解决这个问题,请随时发表评论。我确实想知道一个自动抓取 CSV 并将其推送到 SQL 数据库中的函数,然后 PHP 会查看 SQL。然而,这似乎有点漫长,如果可能的话尽量保持简单!

标签: php forms csv parsing fgetcsv


【解决方案1】:

$line[0] 这里0 表示product_code 列号并与product_code 号比较,更改csv 中提到的product_code 列号

if($code!=''){
    $ch = fopen("https://focus-8.com/sites/ds/prodinfo.csv", "r");
    // $file = fopen('http://localhost/stackoverflow/test.csv', 'r');
    while (($line = fgetcsv($ch)) !== FALSE) {
      //$line is an array of the csv elements
      if($line[0]==$code){ // Here `0` indicate product_code column number and comparring with product_code number
          $product_code_array = $line;
      }
    }
    print_r($product_code_array); // Here you get all values of that product_code
    fclose($ch);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2018-11-28
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多