Avatar billede cyberdude Nybegynder
06. januar 2006 - 17:42 Der er 8 kommentarer og
1 løsning

impoter data hvor data er tabulator sepereret

Hejsa

Jeg har en .txt fil med data ala

123    123    12    12    12

Altså data der er tabulator sepereret, hvordan får jeg mit script til at fortolke det som næste variabel i filen ??

i mit eksempel script er seperatoren et ; tegn

$filnavn = "upload/minfil.txt";
$fp = fopen($filnavn, r);
while($str = fgets($fp, 4000)){
$split = split( "\;", $str);
$split[0]=addslashes($split[0]);
$split[1]=addslashes($split[1]);
$split[2]=addslashes($split[2]);
$split[3]=addslashes($split[3]);
$split[4]=addslashes($split[4]);
Avatar billede jaw Nybegynder
06. januar 2006 - 17:45 #1
\t er tabulator i php, så prøv:

$split = split("\t", $str);
Avatar billede cyberdude Nybegynder
06. januar 2006 - 17:54 #2
ser umidlbart ikke ud til at funge...
Avatar billede cyberdude Nybegynder
06. januar 2006 - 17:59 #3
nope det funger ikke, det er en excel fil der bliver gemt som en .txt (tab delimited file)

men der bliver ku indhold i $split[0]
Avatar billede jaw Nybegynder
06. januar 2006 - 18:01 #4
Prøv lige det her, for det virker fint hos mig, og så paste dit output. Ellers er det umiddelbart ikke en rigtig tab den bliver separeret med af Excel.

<?
$filnavn = "upload/minfil.txt";
$fp = fopen($filnavn, 'r');
while($str = fgets($fp, 4000)){
$split = split( "\t", $str);
echo "<pre>";
print_r($split);
echo "</pre>";
}
?>
Avatar billede jaw Nybegynder
06. januar 2006 - 18:11 #5
Og jeg har også lige prøvet excel, det giver også et fint resultat her.
Avatar billede cyberdude Nybegynder
06. januar 2006 - 18:14 #6
hmm den ser ud til at funge...
Avatar billede cyberdude Nybegynder
06. januar 2006 - 18:16 #7
Smid et svar og du får point, for det funger jo fint :-)
Avatar billede jaw Nybegynder
06. januar 2006 - 18:19 #8
Det var godt :) !
Avatar billede olebole Juniormester
09. januar 2006 - 05:28 #9
<ole>

Ellers kan du bruge en af PHP's indbyggede csv-funktioner:

$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
  $num = count($data);
  echo "<p> $num fields in line $row: <br /></p>\n";
  $row++;
  for ($c=0; $c < $num; $c++) {
      echo $data[$c] . "<br />\n";
  }
}
fclose($handle);

- taget fra:
  http://dk2.php.net/manual/da/function.fgetcsv.php

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester