我正在寻找一些关于如何编写PHP脚本的建议,该脚本将从包含高度和宽度测量值的CSV文件中计算出正确的价格,然后返回正确的价格。
我需要显示2个HTML选择框,允许选择宽度和高度尺寸,然后能够使用这些值从CSV文件中计算出正确的价格 - 例如,如果尺寸选择为914 x 762被选中,我将能够返回23.05的价格。
我附上了CSV文件的屏幕截图和示例,并为了示例而将尺寸(宽度/高度)设为粗体。
我不是在寻找一个完整的解决方案,但是我对如何实现这一目标的正确方向的观点将不胜感激。
答案 0 :(得分:0)
虽然我认为你应该使用数据库。您可以将第一行的分隔符计数到正确的维度,然后搜索具有正确维度的行,并使用先前的分隔符计数来查找您的值。
答案 1 :(得分:0)
我接受了使用数据库的建议,因为我的客户已经使用CSV文件作为其尺寸/价格,这只会为他们创建另一个过程。所以我把一些代码直接放在CSV文件中。
下面是我的代码(虽然有点基本和凌乱,但它有效!):
<?php
// Get CSV header
$ch = fopen("test.csv", "r");
$header_row = fgetcsv($ch);
// Get array of rows
$rows = array_map('str_getcsv', file('test.csv'));
// Remove first row (header row) as we already have this separately
unset( $rows[0] );
?>
<form action="" method="post" name="calc">
Width: <select name="width">
<?php
// Remove first blank cell from $header
unset( $header_row[0] );
foreach ( $header_row as $key => $width ){
echo '<option value="' . $key . '">' . $width . 'mm</option>';
}
?>
</select>
Height: <select name="height">
<?php
foreach ( $rows as $key => $row ){
echo '<option value="' . $key . '">' . $row[0] . 'mm</option>';
}
?>
</select>
<input type="submit" name="get-price" value="Get Price!">
</form>
<?php
if ( isset( $_POST['get-price'] ) ){
$width = $_POST['width'];
$height = $_POST['height'];
echo 'Price: £' . $rows[$height][$width];
}
?>