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"
?>