Lê e imprime todo o conteúdo de um arquivo CSV no PHP

<?php
// Lê e imprime todo o conteúdo de um arquivo CSV
$row = 1;
$handle = fopen ("test.csv","r");
while ($data = fgetcsv ($handle, 1000, ",")) {
   $num = count ($data);
   print "<p> $num campos na linha $row: <br>";
   $row++;
   for ($c=0; $c < $num; $c++) {
       print $data[$c] . "<br>";
   }
}
fclose ($handle);
?> 

Outra:
<?php

define('CSV_BOTH', 1);
define('CSV_ASSOC', 2);
define('CSV_NUM', 3);

function parse_csv($filename, $result_type = CSV_BOTH) {
   if(!file_exists($filename)) {
       die("file (" . $filename . ") does not exist\n");
   }
  
   $lines = file($filename);
  
   $title_line = trim(array_shift($lines));
   $titles = split(",", $title_line);
  
   $records = array();
   foreach($lines as $line_num => $line) {   
       $subject = trim($line);
       $fields = array();
       for($field_num = 0; $field_num < count($titles); $field_num++) {
           if($subject{0} == '"') {
               preg_match('/^"(([^"]|\\")*)",?(.*)$/', $subject, $matches);
              
               $value = $matches[1];
               $subject = $matches[3];
              
               if($result_type == CSV_BOTH || $result_type == CSV_ASSOC) {
                   $fields[$titles[$field_num]] = $value;
               }
              
               if($result_type == CSV_BOTH || $result_type == CSV_NUM) {
                   $fields[$field_num] = $value;
               }
           } else {
               preg_match('/^([^,]*),?(.*)$/', $subject, $matches);
              
               $value = $matches[1];
               $subject = $matches[2];
              
               if($result_type == CSV_BOTH || $result_type == CSV_ASSOC) {
                   $fields[$titles[$field_num]] = $value;
               }
              
               if($result_type == CSV_BOTH || $result_type == CSV_NUM) {
                   $fields[$field_num] = $value;
               }
           }
       }
      
       $records[] = $fields;
   }

   return $records;
}

?>
 
<?
function csv_escape($str) {
   $str = str_replace(array('"', ',', "\n", "\r"), array('""', ',', "\n", "\r"), $str, &$count);
   if($count) {
       return '"' . $str . '"';
   } else {
       return $str;
   }
}
?>


<?php
$caminho = "/home/httpd/html/index.php";
$arquivo = basename ($caminho);        // $arquivo = "index.php"
$arquivo = basename ($caminho,".php"); // $arquivo = "index"
?>