【问题标题】:How to make valid/invalid checks in csv on PHP如何在 PHP 上的 csv 中进行有效/无效检查
【发布时间】:2013-08-02 16:36:21
【问题描述】:

如何检查来自 csv 的数据,例如

 17,William,10/3/1997,WilliamKDollinger@trashymail.com,MN,55401

并检查例如它们不能超过 21 岁。然后制作 2 个文件..有效和无效,如果它们超过 21 岁,它们进入有效的 csv 文件,无效的文件进入无效的 csv。谢谢。

我当前的php代码是这样的:

<?PHP
function readCSV($csvFile){
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle) ) {
    $line_of_text[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);
return $line_of_text;
}

$csvFile = 'C:\Users\User 1\Desktop\orders.csv';

$csv = readCSV($csvFile);
echo '<pre>';
print_r($csv);
echo '</pre>';
?>

【问题讨论】:

  • 嗯,你问if是什么?
  • 不,我知道逻辑,只需要一个起点,比如如何扫描每一行或每一列......
  • 您必须从最初的表单输入开始处理它,并使用 if { // in this age bracket // do something } 类型的东西。至少那是我从“开始”开始要做的事情,而不必“以后”担心。这样会简单很多。
  • fgetcsv返回一个数组,所以你需要做的就是检查第一个值,然后fputcsv对应文件的行

标签: php csv export-to-csv


【解决方案1】:
$pos_of_col = 0 // column to check
if($line_of_text[$pos_of_col] > 21){ //add $line_of_text to valid csv }

【讨论】:

    【解决方案2】:

    您可以遍历这些行,然后使用explode() 用分隔符(在本例中为逗号)分隔行,并将值存储在变量中。

    $str = '17,William,10/3/1997,WilliamKDollinger@trashymail.com,MN,55401';
    $str = explode(',', $str);
    
    $age = $str[0];
    $name = $str[1];
    $dob = $str[2];
    $email = $str[3];
    ...
    

    完成后,您可以简单地使用 if 语句和您的逻辑来比较它们,然后用它做任何您想做的事情。

    例如:

    if( $age > 21 ) {
    
    //hurray, you're older than 21
    
    }
    

    键盘:http://codepad.org/pS6CdVrW

    希望这会有所帮助!

    【讨论】:

    • 谢谢你,你能详细说明一下我在当前代码结束后需要做的第一件事吗?
    猜你喜欢
    • 1970-01-01
    • 2020-03-11
    • 2013-01-24
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多