Avatar billede cykel123 Nybegynder
31. marts 2003 - 16:41 Der er 2 kommentarer og
1 løsning

Udtræk data'er fra linier i teksfil og gem disse i array

Jeg har en tekstfil som ser sådanne ud
*****tekstfil begin*********

1;#@:2;#@:3

;#@:Dette
er

en
test;#@:end
2;#@:2;#@:3;#@:Dette er en test;#@:end

******tekstfil end***********

Følgende script skal lægge variablerne i et array som er adskilt ved control sættet
;#@:  //adskiller data'er

og

;#@:end  //adskiller array's


**********script beging****'

$fp = fopen("test.log","r");
$raadata = fread($fp,filesize("test.log");
fclose($fp);
$linier = explode"\n",$raadata)
text_linier = 0;
for ($i=0;$i < sizeof($linier);$i++){

  $dataarray[$tekst_linier] = explode(";#@:", $linier[$i]); //put værdier i array, adskilt ud fra controlsæt
  if preg_match(/;#@:end/", $linier[$i)) {$text_linier++}    //find det sidste controlsæt

}

************script end*********'

Resultatet bliver forkert når der er flere linier. Kan du tilpasse
mit script så det viser det rigtige resultat, hvor tomme linier også indgår


Resultet skal se sådanne ud for array1 og array2 i "3. record"

array1[3]:
Dette
er

en
test

array2[3]:
dette er en test
Avatar billede jespernaur Nybegynder
31. marts 2003 - 20:46 #1
Det kan gøres noget enklere ved først at dele data op på #@:end, og derefter i en løkke dele op på ;#@:
Derved opnås et 2-dimensionalt array $resultat:

  $fp = fopen("test.log","r");
  $raadata = fread($fp,filesize("test.log"));
  fclose($fp);

  $arrays = explode("#@:end", $raadata);

  for ($arr = 0; $arr < count($arrays); $arr++) {
      $resultat[$arr] = explode(";#@:", $arrays[$arr]);
  }
Avatar billede tipsen Nybegynder
31. marts 2003 - 22:32 #2
Hvis du har behov for at gemme indhold af arrays, hvorfor bruger du så ikke bare funktionerne serialize() og unserialize() som er lavet til formålet.
Avatar billede cykel123 Nybegynder
31. marts 2003 - 22:32 #3
Tak for hjælpen..du er dygtig :-)
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