![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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. |
|
|
![]()
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] |
|
|
![]()
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.
|
|
|
![]()
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] |
|
|
![]()
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ć (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
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 |
|
|
![]()
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. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
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. |
|
|
![]()
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 ?
|
|
|
![]()
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] |
|
|
![]()
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 ? |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
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
|
|
|
![]()
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. |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
|
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/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. |
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
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] |
|
|
![]()
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...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 02:09 |