PHP 等价于 excel 解析 CSV 时的 INDEX MATCH
PHP equivalent to excel INDEX MATCH when parsing CSV
我正在做一个快速项目,我正在创建一个可以从任何浏览器访问的 php 网页。我只知道 PHP 函数的基础知识,所以需要一些帮助。
我想看看我是否可以做的是创建一个文件,我的同事可以在其中输入产品代码,该表格将显示有关产品的相关信息。困难在于信息将在 excel 上进行管理,但在信息需要更新时以 CSV 格式上传到服务器。
我基本上是在寻找一段执行以下操作的代码:
- 网页使用POST
获取产品代码
- PHP 解析电子表格的第一列并搜索产品代码
- 找到产品代码后,returns行号
- PHP 然后将行解析为数组
- 然后我根据需要在网页上打印数组。
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 中打印它,如下所示:
<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>
非常感谢任何帮助,谢谢!
$line[0]
此处 0
表示 product_code 列号并与 product_code 号进行比较,更改 product_code 列号,如您的 csv
if($code!=''){
$ch = fopen("https://focus-8.com/sites/ds/prodinfo.csv", "r");
// $file = fopen('http://localhost/Whosebug/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);
}
我正在做一个快速项目,我正在创建一个可以从任何浏览器访问的 php 网页。我只知道 PHP 函数的基础知识,所以需要一些帮助。
我想看看我是否可以做的是创建一个文件,我的同事可以在其中输入产品代码,该表格将显示有关产品的相关信息。困难在于信息将在 excel 上进行管理,但在信息需要更新时以 CSV 格式上传到服务器。
我基本上是在寻找一段执行以下操作的代码:
- 网页使用POST 获取产品代码
- PHP 解析电子表格的第一列并搜索产品代码
- 找到产品代码后,returns行号
- PHP 然后将行解析为数组
- 然后我根据需要在网页上打印数组。
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 中打印它,如下所示:
<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>
非常感谢任何帮助,谢谢!
$line[0]
此处 0
表示 product_code 列号并与 product_code 号进行比较,更改 product_code 列号,如您的 csv
if($code!=''){
$ch = fopen("https://focus-8.com/sites/ds/prodinfo.csv", "r");
// $file = fopen('http://localhost/Whosebug/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);
}