Nacitanie do array z ineho suboru

Programovacie jazyky, rady, poradňa...
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Nacitanie do array z ineho suboru

Príspevok od používateľa geoge046 »

Cafte,
chcem do array vkladat hodnoty pomocou include. Lenze array takuto formu zapisu pravdepodobne nepodporuje:

Kód: Vybrať všetko

function obj($in){
$trans = array(include("subor.inc"));
	return(strtr($in, $trans));
}
Da sa to neako obist?
Dakujem
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Aký formát má ten súbor? Ak ti stačí, aby celý riadok bol jeden prvok v tom poli, použi funkciu file. Ak to potrebuješ urobiť nejako zložitejšie, budeš ten súbor musieť načítavať po riadkoch, každý riadok rozdeliť na požadované elementy a to potom vložiť do poľa (samozrejme si na to môžeš urobiť nejakú funkciu).
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

nerozumiem. co ma byt v tom poli? riadky toho suboru? na to ma phpcko predsa ine funkcie
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

nechces nahodou do premennej vlozit obsah celeho textoveho dokumentu?
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

chrono napísal:Aký formát má ten súbor? Ak ti stačí, aby celý riadok bol jeden prvok v tom poli, použi funkciu file. Ak to potrebuješ urobiť nejako zložitejšie, budeš ten súbor musieť načítavať po riadkoch, každý riadok rozdeliť na požadované elementy a to potom vložiť do poľa (samozrejme si na to môžeš urobiť nejakú funkciu).
no ja chcem nacitavat jeden subor, kde bude obsah nieco taketo ["001"=>"nulanulajeden", ] a tychto veci tam bude aj viac, bo ten do toho suboru sa budu pridavat dalsie tieto nove veci.
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

to bude format toho suboru? tak potrebujes parser.
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

mastermind napísal:to bude format toho suboru? tak potrebujes parser.
heh, a neaky prakticky priklad nemame? bo s touto funkciou som este nepracoval :oops:
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

parse=rozoberat, analyzovat. teba napisat nejaku funkciu ktora z tych retazcov dostane len tie data ktore chces.
napis neda aky bude mat ten domument format.
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

Ja chcem aby do toho array nacitalo pomocou tohto scriptu:

Kód: Vybrať všetko

<?php 

function s2p($mask) 
{ 
   $translate = Array( 
      "." => "\\.", 
      "*" => ".*", 
      "?" => ".?", 
      "+" => "\\+", 
      "[" => "\\[", 
      "]" => "\\]", 
      "(" => "\\(", 
      ")" => "\\)", 
      "{" => "\\{", 
      "}" => "\\}", 
      "^" => "\\^", 
      "\$" => "\\\$", 
      "\\" => "\\\\", 
   ); 
   return "/^".strtr($mask, $translate)."$/"; 
} 

function include_files($dir, $mask) 
{ 
   $mask = s2p($mask); 

   $files = array(); 

   if (!preg_match("/\/$/", $dir)) { 
      $dir .= "/"; 
   } 

   if (is_dir($dir)) { 
      if ($dh = opendir($dir)) { 
         while (($filename = readdir($dh)) !== false) { 
            if ($filename != "." && $filename != ".." && is_file($dir . $filename) && preg_match($mask, $filename)) 
               $files[] = $dir . $filename; 
         } 
         closedir($dh); 
      } 
   } 
   rsort($files); 
   foreach ($files as $filename) { 
      include($filename); 
   } 
} 

include_files("files", "funkcia*.txt"); 
?>
vsetky mozne subory, ktore tomu odpovedaju. V tych suboroch budu len retazce typu ("001"=>"Jeden", ) a toto zo vsetkych tych suborov nacita. Teda ak sa chapeme dobre :)
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

existuje nepekne ale rychlejsie riesenie oproti parsovaniu

Kód: Vybrať všetko

<?php
//lang.php
return Array(
"001" => "Vitaj!",
"002" => "Dovidenia!"
);
?>

Kód: Vybrať všetko

<?php
//index.php
$lang = include("lang.php");
?>
Napísať odpoveď