我真是php的新手。我这样做有问题..
我有sample.csv文件包含3行:入站(第1行),出站(第2行)和日期(第3行)。
sample.csv
**inbound** **outbound** **date**
IN/15@001234 OUT/000000163-000000as 1/12/2014
IN/15@004323 NOT/000000141-00000043 1/14/2014
IN/15@005555 OUT/000000164-000000jk 1/15/2014
是否可以显示第二行以“NOT”开头的所有列,以及字符“ - ”之前的数字是141 ???
输出:
IN/15@004323 NOT/000000141-00000043 1/14/2014
我不知道是否有可能......请帮帮我.. 我有一个代码如下。但它只打开csv文件...
$file = fopen('Master.csv', 'r');
echo "<table style='border: 2px solid black; text-align:left'>";
while (($line = fgetcsv($file)) !== FALSE) {
list($inbound, $outbound, $date) = $line;
echo "<tr>";
echo "<td>$inbound</td>";
echo"<td>$outbound</td>";
echo "<td>$date</td>";
echo "</tr>";
}
echo "</table>";
是否可以显示第二行以“NOT”开头的所有列,以及字符“ - ”之前的数字为141 ???
答案 0 :(得分:1)
插入
if (preg_match('/^NOT/', $outbound)) continue;
在list()...
语句之后就足够了。
但是您的数据看起来不像是以逗号分隔,而不是以制表符分隔。也许你在开头讨论行时是指列?
答案 1 :(得分:0)
您可以使用strpos()
if ( strpos($outbound, 'NOT') !== false ) {
// "NOT" WORD FOUND IN STRING
}
答案 2 :(得分:0)
试一试。这将使用逗号分隔的csv文件。
echo "<table border = 1><tr><td>first</td><td>second</td><td>third</td></tr>"; //creating table
$handle = fopen('fe.csv', "r"); //open csv file
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) //read csv file row by row
{
//check both NOT and 141- in the string
if ( (strpos($data[1], 'NOT') !== false ) && (strpos($data[1], '141-') !== false )) {
//add required field data to table
echo "<tr>";
echo "<td>".$data[0]."</td>";
echo"<td>".$data[1]."</td>";
echo "<td>".$data[2]."</td>";
echo "</tr>";
}
}
echo "</table>"; //close table
?>