Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt danych z pliku konfiguracyjnego
Forum PHP.pl > Forum > PHP
_scorpio__
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
spenalzo
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.
adwol
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]
Omega
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.
spenalzo
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]
jono
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
Jabol
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
adwol
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
spenalzo
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.
_scorpio__
spenalzo a teraz jak z tego twojego przykladu dane wczytac na strone ?
spenalzo
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]
_scorpio__
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 ?
[Regis]
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
Jabol
[Regis]: Taki plik byłoby trudno zmieniac, chociaz przyznam, ze odczytanie byloby banalne
spenalzo
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.
_scorpio__
No wiec czego najlepiej urzyc tak zeby bylo dobre i spelnialo moje/nasze oczekiwania questionmark.gif?
spenalzo
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.
jono
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
spenalzo
[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]
jono
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...
spenalzo
Cytat
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...

No tak, sorry - doczytałem w manualu, że to co jest umieszczone w apostrofach nie jest interpretowane, w przeciwieństwie do cudzysłowów.
_scorpio__
Czyli ja juz sie zgubilem co najlepiej uzyc ponawiam bo propozycji jest 1000 a nie wszystkie wedlug was sa dobre. Wiec niech ktos przedstawi jedna a dobra
jono
Odpowiedz konkretnie na pytanie:
Czy plik konfiguracyjny ma byc dynamiczny, czy np. będzie tam hasło do bazy danych itp., czyli dane, które się często nie zmieniają?

To jest najważniejsze.
jeżeli nie ma byc dynamiczne, to najlepiej użyj include() i po prostu zmienne, a jeżeli chcesz dynamicznie to inne sposoby.
_scorpio__
Tam maja byc danenp ip serwerow kolory strony i zmienne ktore nie beda zapisywane ze strony ale to zadna konkretna baza danych mysql ani nic tylko dane ktore zostana raz po instalacji skryptu zapisane i bede pozniej odczytywane
jono
NO to zrób jeden plik .php zawierający konkretne zmienne, np
[php:1:1679c2296b]<?php
$tlo = 'white';

?>[/php:1:1679c2296b]

a potem na stronie

[php:1:1679c2296b]<?php
include("conf.php");
echo"<table bgcolor=$tlo>";
//itd...

?>[/php:1:1679c2296b]
StevDefs
Possible Side Effects For Amoxicillin Cialis Gravidanza cialis tablets for sale Hydrochlorothiazide Medicine Overseas Plymouth Levitra Bayer Posologia Kamagra Us

Kamagra Oral Jelly 100mg Offers viagra online Viagra Pricelist Levitra Costo On Line

Secure Ordering Fluoxetine Medication Internet Free Shipping Overnight Shippingprozac generic cialis from india Where To Order Zentel Pills Secure Ordering Over Night Buy Retin A Without Prescription No Prescription Atomoxetine

Cialis And Dapoxetine Acheter Cialis Non Generique achat viagra france Cialis Que Es Yahoo Viagra Generikum Forum
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.