Odczyt danych z pliku konfiguracyjnego |
Odczyt danych z pliku konfiguracyjnego |
14.08.2003, 17:16:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 4.08.2003 Ostrzeżenie: (0%) |
Chce stworzyc do swojego skryptu plik konfiguracyjny z ktorego beda pobierane wszelkiego typu dane. I teraz pytanie jak zrobic by z pliku w ktorym dane beda zapisane w sposob
aaa=xxx bbb=yyy ccc=eee Oczytac dane w ten sposob ze wartosci z aaa zostane do pola1 a wartosci ccc do pola2 a z bbb do 5 pola, i zeby z jednego plikukilka podstron moglo szczytywac dane |
|
|
14.08.2003, 17:36:48
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
A nie lepiej trzymać same dane bez wartośi? Bo ja za bardz nie widzę sensu.
A jak masz same wartości oddzielone czymśtam to ładujesz cały plik i rozdzielasz przy pomocy [manual:55b48a8ab3]explode[/manual:55b48a8ab3] i masz ładna tablice. -------------------- |
|
|
14.08.2003, 17:43:28
Post
#3
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat Chce stworzyc do swojego skryptu plik konfiguracyjny z ktorego beda pobierane wszelkiego typu dane. I teraz pytanie jak zrobic by z pliku w ktorym dane beda zapisane w sposob
aaa=xxx bbb=yyy ccc=eee Oczytac dane w ten sposob ze wartosci z aaa zostane do pola1 a wartosci ccc do pola2 a z bbb do 5 pola, i zeby z jednego plikukilka podstron moglo szczytywac dane Nie za bardzo rozumiem o co chodzi Ci z tymi polami. Jak chcesz wyciagnąć konfig postaci klucz=wartosc to najprościej tak: [php:1:bcc786aa1e]<?php foreach (file("config") as $linia) { $linia = rtrim($linia); list($k, $v) = explode('=', $linia, 2); $conf[$k] = $v; } ?>[/php:1:bcc786aa1e] |
|
|
14.08.2003, 18:03:21
Post
#4
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 0 Dołączył: 5.05.2003 Skąd: Mazury Ostrzeżenie: (0%) |
Odczytaj plik przy pomocy polecenia file(), nastepnie exploduj poprzez separator "=" i dane zapisz do tqablicy. W postaci kluczy elementy z indexem [0] (po eksplodowaniu), a wartości z indexem [1]. I problem będziesz miał rozwiązany.
-------------------- <<< EB >>>
|
|
|
14.08.2003, 18:05:54
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
Cytat Odczytaj plik przy pomocy polecenia file(), nastepnie exploduj poprzez separator "=" i dane zapisz do tqablicy. W postaci kluczy elementy z indexem [0] (po eksplodowaniu), a wartości z indexem [1]. I problem będziesz miał rozwiązany.
[php:1:d70104c9bc]<?php $f=file("plik.txt"); for($i=0; $i<count($f); $i++) { $tab[$i]=explode("=",$f[$i]); } echo $tab[18][0]; // wiersz 18, wartość przed = echo $tab[1][1]; // wiersz 1, wartość po = ?>[/php:1:d70104c9bc] -------------------- |
|
|
14.08.2003, 22:46:10
Post
#6
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Równie dobrze, a może nawet lepiej zrób tak:
Plik config.php: [php:1:4b97bbbd9e]<?php $aaa = 'aaa'; $bbb = 'bbb'; ?>[/php:1:4b97bbbd9e] i teraz plik np. index.php: [php:1:4b97bbbd9e]<?php include('config.php'); echo $aaa; echo $bbb; ?>[/php:1:4b97bbbd9e] Po co robić file() explode() lepiej od razu zrób plik konfiguracyjny jako plik php ze zmiennymi i nie będziesz musiał kombinować -------------------- if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;} |
|
|
14.08.2003, 22:56:42
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
jono, ale taki plik się trudniej edytuje za pomocą php.
Spróbuj tak:[php:1:51823c4319]<?php foreach ( file( "config" ) as $linia ) { $linia = trim( $linia ); list( $k, $v ) = explode( '=', $linia, 2 ); ${ trim( $k) } = trim( $v ); } ?>[/php:1:51823c4319] ps. przerobiony skrypt spenalza, tylko troche inaczej zapisuje dane |
|
|
14.08.2003, 23:29:30
Post
#8
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat jono, ale taki plik się trudniej edytuje za pomocą php.
Spróbuj tak:[php:1:daeaa85da1]<?php foreach ( file( "config" ) as $linia ) { $linia = trim( $linia ); list( $k, $v ) = explode( '=', $linia, 2 ); ${ trim( $k) } = trim( $v ); } ?>[/php:1:daeaa85da1] ps. przerobiony skrypt spenalza, tylko troche inaczej zapisuje dane Tia... bardzo podobny posłałem wcześniej. Tylko nie było trimowania klucza i wartości. |
|
|
14.08.2003, 23:34:00
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
Jest jeszcze jedno wyjście:
[php:1:2bacfeab1a]<?php $f=file("plik"); for($i=0; $i<count($f); $i++) { parse_str($f[$i]); } ?>[/php:1:2bacfeab1a] i masz tak jakby to były normalne zmienne. -------------------- |
|
|
15.08.2003, 10:39:11
Post
#10
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 4.08.2003 Ostrzeżenie: (0%) |
spenalzo a teraz jak z tego twojego przykladu dane wczytac na strone ?
|
|
|
15.08.2003, 14:47:22
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
Cytat spenalzo a teraz jak z tego twojego przykladu dane wczytac na strone ?
[php:1:c437a4c9aa]<?php echo $aaa; //xxx echo $bbb; //yyy echo $ccc; //eee ?>[/php:1:c437a4c9aa] -------------------- |
|
|
15.08.2003, 17:32:33
Post
#12
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 4.08.2003 Ostrzeżenie: (0%) |
Cytat Cytat spenalzo a teraz jak z tego twojego przykladu dane wczytac na strone ?
[php:1:0e7e0b87cb]<?php echo $aaa; //xxx echo $bbb; //yyy echo $ccc; //eee ?>[/php:1:0e7e0b87cb] a czy moge odczytac w jednej stronie samo bbb w drugiej np samo ccc ? |
|
|
15.08.2003, 19:44:26
Post
#13
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Tak z ciekawosci - a nie lepiej zeby plik konfiguracyjny byl normalnym plikiem php ze zmiennymi ? Np. tak:
[php:1:e9a627dc5e]<?php $bardzo_wazna_zmienna = 1; $ilosc_linii_na_stronie = 20; $aaa = "xxx"; ?>[/php:1:e9a627dc5e] itp ? Wtedy taki plik wystarczy includowac i mozna normalnie korzystac ze zmiennych. To chyna znacznie prosciej, a o jakichs waznych przeciwskazaniach nie slyszalem jeszcze |
|
|
15.08.2003, 20:06:55
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
[Regis]: Taki plik byłoby trudno zmieniac, chociaz przyznam, ze odczytanie byloby banalne
|
|
|
15.08.2003, 21:58:14
Post
#15
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
Cytat [Regis]: Taki plik byłoby trudno zmieniac, chociaz przyznam, ze odczytanie byloby banalne
Ale w temacie jest plik konfiguracyjny, więc ustawia się to rzadko, najczęściej raz i aktualizacji dokonuje się przeważnie ręcznie. -------------------- |
|
|
15.08.2003, 22:15:03
Post
#16
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 4.08.2003 Ostrzeżenie: (0%) |
No wiec czego najlepiej urzyc tak zeby bylo dobre i spelnialo moje/nasze oczekiwania ?
|
|
|
15.08.2003, 22:21:42
Post
#17
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
Cytat No wiec czego najlepiej urzyc tak zeby bylo dobre i spelnialo moje/nasze oczekiwania ?
Napisz, czy to jest plik często czy rzadko uaktualniany. Jeżeli rzadko tam sobie zdefiniuj wartości przypisane do zmiennych, a jak na sztywno to użyj mojego ostatniego skryptu lub jakiegoś innego. -------------------- |
|
|
15.08.2003, 22:31:34
Post
#18
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
heh, omawiacie pomysł który rzuciłem kilka postów wcześniej. A edycja takiego pliku z poziomu php?? W sumie, jeżeli nie ma byc zmiennej ilości danych jest prosta.
[php:1:2d7650304c]<?php $c = 'wartosc ktora chcemy wrzucic'; $d = 'mozna ja pobrac z formularza...'; $zawartosc = '<?php $a = ''.$c.''; $b = ''.$d.''; ?>' $fp = fopen("config.php", "w"); fputs($fp, $zawartosc); fclose($fp); ?>[/php:1:2d7650304c] co da efekt w zapisanym pliku: [php:1:2d7650304c]<?php $a = 'wartosc ktora chcemy wrzucic'; $b = 'mozna ja pobrac z formularza...'; ?>[/php:1:2d7650304c] Chociaż i tak poprawiłem, bo skaszaniłem - zapomniałem średnika -------------------- if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;} |
|
|
15.08.2003, 22:36:49
Post
#19
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) |
[php:1:07989b4509]<?php
$a = '.$c.' $b = '.$d.' ?>[/php:1:07989b4509] Pamiętaj, że w takim przypadku musisz dać $zmienna, żeby wyświetlił sie/zapisał razem ze znakiem dolara, bo inaczej php podstawi pod to wartość zmiennej. [php:1:07989b4509]<?php $a = '.$c.' $b = '.$d.' ?>[/php:1:07989b4509] -------------------- |
|
|
15.08.2003, 22:40:42
Post
#20
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
jeżeli stosujesz ' a nie " to $ nie jest interpretowany - uwierz mi - wielokrotnie takie coś robiłem, łącznie z plikami konfiguracyjnymi oraz z czymś takim jak skrypt php z unikalnym kluczem...
-------------------- if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;} |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 09:49 |