Autor Zpráva
Vavroch
Profil
Zdravím
Mám dotaz,data z formuláře ukládám do csv souboru.
Jak ale data z csv načíst a vypsat,resp.povedlo se mi je vypsat,ale pouze na jeden řadek a já bych potřeboval dodržet skrukturu CSV souboru.

Poradí někdo?

Díky za každou radu

Zde je zdrojový kod pro výpis

<?php

//Export z csv souboru
$export = fopen("export.csv","r"); //Definice promenne a prizareni fce fopen s parametry(nazev souboru,pristup prava)
$vypis = fread($export,500);
echo $vypis ;
fclose($export);
?>
nightfish
Profil
while (!feof($export)) {
  echo fgets($export);
}
Vavroch
Profil
Díky
Udělal jsem to takto,ale data jsou vypsána velice zvláštně,jako by se zobrazovali spravně jen nově zaznamenané a navíc když použiji pro druhý parametr fopen 5000 místo 500,vypise to warning anic jineho,pro jistotu pridavam skoro cely ZK:


<?php
//Export z csv souboru
$export = fopen("export.csv","r"); //Definice promenne a prizareni fce fopen s parametry(nazev souboru,pristup prava)
$vypis = fread($export,500);
while (!feof($export)) {
echo fgets($export);
}
fclose($export);
?>


<?php
//Export do csv souboru
$export = fopen("export.csv","r+"); //Definice promenne a prizareni fce fopen s parametry(nazev souboru,pristup prava)
fwrite($export,"Mail;Jmeno;Telefon;O co má zájem;Jeho vzkaz\r\n"); //Fce pro zapis (prizareni prom a vypis hodnot,na konci odrad)
fclose($export); //Fce pro uzavreni handlu souboru
$export = fopen("export.csv","a+");
fwrite($export,"$mail;$name;$telefon;$select;$zprava\r\n");
fclose($export);


//Export z csv souboru
$export = fopen("export.csv","r"); //Definice promenne a prizareni fce fopen s parametry(nazev souboru,pristup prava)
$vypis = fread($export,500);
while (!feof($export)) {
echo fgets($export);
}
fclose($export);
?>
peta
Profil
jednoduche csv muzes resit takto:
function csv_escape($str)
{
$str = str_replace(array('"', ',', "\n", "\r"), array('""', ',', "\n", "\r"), $str, &$count);
if ($count) {return '"' . $str . '"';}
return $str;
}

function from_csv($str_csv)
{
$arr_csv = explode("\r\n",$str_csv); //\n | \r\n
foreach($arr_csv as $key=>$value)
{$arr_csv[$key] = explode(",",$value);}
return $arr_csv;
}

function to_csv($arr_csv)
{
foreach($arr_csv as $key=>$value)
{
foreach($value as $key1=>$value1)
{$value[$key1] = $this->csv_escape($value1);}
$arr_csv[$key] = implode(",",$value);
}
$str_csv = implode("\r\n",$arr_csv); //\n | \r\n
return $str_csv;
}

jenze v realnem plati prave ta funkce csv_escape. php ma vlastni parsovac a ten ja prave nemuzu pouzit, protoze pracuje se souborem. fputcsv nebo tak neco.
nightfish
Profil
Vavroch
$vypis = fread($export,500);
ten řádek vymaž
Vavroch
Profil
Tak jsme to nakonec vyřešil takto:
A funguje to celkem dobre zatím...

//Export z csv souboru
$row = 1; // inicializace, řádek

If (File_Exists($soubor)) //kontrola existence souboru
{
$file_csv = fopen ($soubor, "r"); //otevření souboru
echo "<table border='1' align='center'>"; //začátek tabulky

while ($data = fgetcsv ($file_csv, 1000, ";")) //cyklus který postupně přečte všechny řádky tabulky ...
{ //... řádek potom rozdělí na jednotlivé hodnoty do pole $data
echo "<tr>"; //nový řádek tabulky
$num = count ($data); //zjistí počet sloupců

echo "<td>".$row.".</td>"; //první sloupec bude obsahovat číslování řádků

for ($c=0; $c<$num; $c++) //cyklus pro výpis jednotlivých hodnot tabulky
{
echo "<td>";
echo $data[$c]; //výpis konkrétní hodnoty
echo "</td>";
}
$row++; //inkrementuje číslo řádku o 1
echo "</tr>"; //konec řádku
}
echo "</table>";
fclose ($file_csv); //uzavře soubor
}
else
{
echo "<b>Soubor neexistuje</b><br>"; //pokud soubor neexistuje,tak co..tak nic:)
}
Vavroch
Profil
Tak jsme to nakonec vyřešil takto:
A funguje to celkem dobre zatím...

//Export z csv souboru
$row = 1; // inicializace, řádek

If (File_Exists($soubor)) //kontrola existence souboru
{
$file_csv = fopen ($soubor, "r"); //otevření souboru
echo "<table border='1' align='center'>"; //začátek tabulky

while ($data = fgetcsv ($file_csv, 1000, ";")) //cyklus který postupně přečte všechny řádky tabulky ...
{ //... řádek potom rozdělí na jednotlivé hodnoty do pole $data
echo "<tr>"; //nový řádek tabulky
$num = count ($data); //zjistí počet sloupců

echo "<td>".$row.".</td>"; //první sloupec bude obsahovat číslování řádků

for ($c=0; $c<$num; $c++) //cyklus pro výpis jednotlivých hodnot tabulky
{
echo "<td>";
echo $data[$c]; //výpis konkrétní hodnoty
echo "</td>";
}
$row++; //inkrementuje číslo řádku o 1
echo "</tr>"; //konec řádku
}
echo "</table>";
fclose ($file_csv); //uzavře soubor
}
else
{
echo "<b>Soubor neexistuje</b><br>"; //pokud soubor neexistuje,tak co..tak nic:)
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: