Jump to content
php.lv forumi

Importēt .txt faila saturu uz datubāzi


KasparsK

Recommended Posts

Sveiki

 

.txt faila saturs (piemēram)

2005-2006
Miami
Pos.    	Sec Pos 	Name            
PF      	C   		C. Bosh          
PF      	C   		U. Haslem        
SF      	SG      	L. James        
SG      	PG      	D. Wade          
PG      	PG      	M. Chalmers      
SF      	SG      	S. Battier      
SG      	SF      	M. Miller        
PG      	PG      	N. Cole          
SF      	SG      	J. Jones        
PF      	C   		J. Howard        
C   		C   		J. Anthony      
C   		PF      	E. Curry        
C   		C   		D. Pittman

 

Kā var izvilkt no katras rindas 'Pos.', 'Sec Pos', 'name' kolonām atsevišķi...

 

Piemēram

$var[1] = 'PF';
$var[2] = 'C';
$var[3] = 'C. Bosh';

 

un tad atkal jaunu rindu izvelkam atsevisķi

piemēram:

 

$var[1] = 'PF';
$var[2] = 'C';
$var[3] = 'U. Haslem';

 

Mans netikt galā, pagoogloju, tik un tā nesanāca.

 

P.S par faila satura iegūšanu variet nerakstīt tas man jau ir...

 

Paldies, Kaspars.

Edited by KasparsK
Link to comment
Share on other sites

Ielasi failu ar file() funkciju (kas jau sadala masīvā pa rindiņai) un tad ejo cauri pa rindiņai un izmantojot preg_split() sadali masīvā katru rindiņu. preg_splitam var izmantot regulāro izteiksi, kas matcho vairākas atstarpes.

Link to comment
Share on other sites

Lūk, kā piemēru vari ņemt šo. Izlasīs tikai rindas, kurās ir vismaz seši space

 

<?php
$rows = file('text.txt');
foreach ($rows as $row)
{
 if (strpos($row, " 	")) {
  echo $row.'<br />';
 }
}                                
?>

 

Tālāk, ja tev nevajag pirmo rindu (Pos ; Sec.pos ; Name), tad vari vienkārši ar ifu nočekot, ja ir pirmā rinda, tad neizvada. Tālāk, vienkārši ar implode visu sabāz arrayā.

Edited by y2ok
Link to comment
Share on other sites

Varu piedāvāt šādu risinājumu,

 

# class gatherData ($filename)
class gatherData {

   # set used variables
   private $file_data;

   # Preload file
   public function __construct ($filename) {
       self::setFileData($filename);
   }

   # Load data into array
   public function getData() {
   	$return = array();
   	foreach (self::getFileData() as $key => $value) {

           # Ignore 1st 3 lines of unnecessary code
           if ($key>2) {
               $large_array = explode('  ', $value);
               foreach ($large_array as $info) {
                   if (trim($info)) {
                       $return[$k-2][] .= $info;
                   }
               }
           }
       }

       # return new array
       return $return;

   }

   # set '$file_data' variable
   private function setFileData ($file_data) {
       $file_data = file($file_data);
   	$this -> file_data = $file_data;
   }

   # get '$file_data' variable
   private function getFileData() {
       return $this -> file_data;
   }

}

$aaxc = new gatherData('data.txt');
$new_array = $aaxc -> getData();
print_r($new_array);

Takā preg_split nepārzinu labi, tad kāds cits var uztaisīt labāku variantu gan jau getData funkcijai.

Edited by aaxc
Link to comment
Share on other sites

Kāpēc tu liec tās atstarpes (pirms un pēc «->», pirms «)» un pēc «(» utt.)?

Tas nav ne PEAR, ne Zend... ne jebkurš cits _coding style_, kuru pārzinu.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...