Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Odczyt danych z pliku konfiguracyjnego
_scorpio__
post 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
Go to the top of the page
+Quote Post
spenalzo
post 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.


--------------------

Go to the top of the page
+Quote Post
adwol
post 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]
Go to the top of the page
+Quote Post
Omega
post 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 >>>
Go to the top of the page
+Quote Post
spenalzo
post 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]


--------------------

Go to the top of the page
+Quote Post
jono
post 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ć tongue.gif


--------------------
if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;}
Go to the top of the page
+Quote Post
Jabol
post 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
Go to the top of the page
+Quote Post
adwol
post 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. winksmiley.jpg
Go to the top of the page
+Quote Post
spenalzo
post 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.


--------------------

Go to the top of the page
+Quote Post
_scorpio__
post 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 ?
Go to the top of the page
+Quote Post
spenalzo
post 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]


--------------------

Go to the top of the page
+Quote Post
_scorpio__
post 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 ?
Go to the top of the page
+Quote Post
[Regis]
post 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 smile.gif
Go to the top of the page
+Quote Post
Jabol
post 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
Go to the top of the page
+Quote Post
spenalzo
post 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.


--------------------

Go to the top of the page
+Quote Post
_scorpio__
post 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 questionmark.gif?
Go to the top of the page
+Quote Post
spenalzo
post 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 questionmark.gif?

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.


--------------------

Go to the top of the page
+Quote Post
jono
post 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 smile.gif


--------------------
if(function_exists("zrozum_kobiete")){
echo "Niemożliwe!"; exit;}
Go to the top of the page
+Quote Post
spenalzo
post 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]


--------------------

Go to the top of the page
+Quote Post
jono
post 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;}
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 22:47