Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zapisac do pliku dane w ten sposób ?
Forum PHP.pl > Forum > Przedszkole
spootnikpolska
chciałbym się poradzić, jak zapisać dane z formularza $nazwa, $adres, tak azebym mógł dopisać do tego formatowanie HTML ? chcę storzyc mały panel do dodawania linków doplików, tak aby nastepnie skrypt odczytywał z pliku tekstowego kod HTML ze zmiennymi a nastepnie generował to w pdpowiednim miejscu na stronie. Z góry dziękuje za pomoc.
cadavre
Nie rozumiem. Możesz zrobić tak:
  1. <?php echo '<a href="' . $adres . '">' . $nazwa . '</a>'; ?>
Albo jak kto woli:
  1. <?php echo "<a href=$adres>$nazwa</a>"; ?>
Albo nawet:
  1. <?php echo "<a href="$adres">$nazwa</a>"; ?>
spootnikpolska
tak, to jest dobre rozwiązanie w przypadku kiedy przekazywałbym zmienne bezposrednio na strone, jednak chcąc je gromadzic potrzebuje je zapisac do pliku txt (tak jak bym tworzył sobie strone HTML) a nastepnie druga strona wczytywała by zawartość pliku i wyswietlała by odpowiednie wpisy. Wykorzystywana by była funkcja fwrite() oraz fread() ale dzieki za info postaram się teraz to zrobić samemu, ewentualna pomoc przydała by mi sie przy wyciąganiu gotowego całego kodu z pliku, czy wystarczy poprostu wtedy urzyć include() ?
Filozof
Dane w pliku możesz zapisywać tak:
Kod
$adres#$nazwa

Później wczytujesz plik np. do tablicy i przy użyciu pętli (chociażby FOR) każdy wiersz z pliku rozdzielasz przy pomocy funkcji explode
  1. <?php
  2.  
  3. $tablica = explode('#', $wiersz);
  4. $adres = $tablica[0];
  5. $nazwa = $tablica[1];
  6.  
  7. ?>

I później , kiedy chcesz sformatować to robisz to tak, jak wskazał ci CADAVRE'a. Proste. snitch.gif
spootnikpolska
Wpisując $adres#$nazwa zapisuje do pliku dwie zmienne tak ? operator "#" służy do łączenia ciągów. dobrze rozumiem ?
brachu
Nie blad znak '#' nie sluzy do laczenia ciagow tylko zostal zastosowany jako separator, zebys mogl rozroznic gdzie co masz w pliku tekstowym.
spootnikpolska
a może rozwiązać to w ten sposób, napisać skrypt który będzie formatował przekazane zmienne, zapisze je do nowych zmiennych i te ostatnie zmienne zostaną zapisane joz jako gotowe wpisy w pliku tekstowym ? tylko jak do zmiennej zawierającej tekst dopisać formatowanie ?
brachu
zmienna $wiersz to jest caly wiersz zczytany z pliku!!! Monza to zrobic np tak:

  1. <?php
  2.  
  3. $wiersz = file('plik.txt');
  4.  
  5. for ($i=0; $i < count($wiersz); $i++){
  6. $tablica = explode("#",  rtrim($wiersz[$i]));
  7.  
  8. //reszta
  9. }
  10. ?>


edit:

A z tym formatowaniem to uzywaj css - opracuj liste styli do wyboru i jako nastepna zmienna w pliku (bo ladujesz tam teraz tyko dwie zmienne) dodaj jeszcze nazwe stylu i po sprawie!!!
cadavre
A nie lepiej zaraz do pliku z linkami zapisywać cały link: <a href=""></a>?
Niż później go wyciągać i pakować do linku na stronie.
Poza tym możesz użyć tablicy w stylu:
$link[$nazwa] = "<a href=$adres>$nazwa</a>";
spootnikpolska
  1. <?php
  2. $wpis;
  3. $wpis=('<a href="' . $adres . '">' . $nazwa . '</a><br>');
  4. $file=fopen("data.txt", "w");
  5. fwrite($file, $wpis);
  6. fclose($file);
  7.  
  8. ?>

Zrobilem to w ten sposób, dobrze ?
i teraz pozostaje tylko wczytac zawartosc pliku na stronie mysle ze to jest proste i dobre rozwiązanie. Co o tym sądzicie ?
cadavre
Heh. To samo Ci właśnie napisałem w topiku obok. :]
  1. <?php
  2. fopen("data.txt", "w")
  3. ?>
Nie może być, bo będzie czyścił plik za każdym razem. Musi być
  1. <?php
  2. fopen("data.txt", "a")
  3. ?>
, a w
  1. <?php
  2. $wpis=('<a href="' . $adres . '">' . $nazwa . '</a><br>');
  3. ?>
zrób:
  1. <?php
  2. $wpis=('<a href="' . $adres . '">' . $nazwa . '</a><br>n');
  3. ?>
Dzięki temu w pliku txt będzie się można łatwiej odczytać.
spootnikpolska
Extra smile.gif dziękuje za uwagi, teraz pozostaje wczytać zawartość pliku na stronie z listą plików. czy wczytując na stronie html, plik txt z zapisanym formatowaniem html wszystko będzie jak nalerzy ? no i ewentualnie przekierowanie na stronę z wynikiem, to nalerzy zrobic na koncu skryptu tak ? jak to ma wyglądać ?
  1. <?php
  2. $wpis;
  3. $wpis=('<a href="' . $adres . '">' . $nazwa . '</a><br>n');
  4. $file=fopen("data.txt", "a");
  5. fwrite($file, $wpis);
  6. fclose($file);
  7. header("Location: http://stronka.com/lista.html");
  8. ?>
w zasadzie to wszystko jest ok, tylko ze serwer ma takiego muła ze niewiem czy nie ma tu jakiegos bledu winksmiley.jpg

Strona koncowa:
  1. <?
  2. include 'data.txt';
  3. ?>
  4. </BODY>
wczyta mi z pliku txt zapisane w nim formatowanie HTML ?
dtb
tak wczyta, poniewaz plik w ktorym data.txt jest includowany jest plikiem html
spootnikpolska
Z jakiejs dziwnej przyczyny, kiedy w pliku zostaje zapisany adres, i następuje przekierowanie do strony lista.html, pojawia się następujący problem, chodzi o to ze adres zostaje zapisany przeze mnie w postaci np. "http://xxx/plik.ext" (tak jak wpisuje w polu przekierowywanym potem na zmienna $adres), a po otwarciu strony koncowej, faktyczny adres ma postac "htttp://www.strona.com/http://xxx/plik.ext" dziwne, niewiem w czym tkwi problem. Tymczasem w pliku tekstowym z danymi wszystko jest ok. blink.gif
andrzejb
sprawdz czy przed drugim ciagiem "http://" nie ma spacji silniki przegladarek wykrzystuja mechanizm sciezki bezwzglednej

link z wartoscia atrybutu <a href="test.php">... w domenie onet.pl zostanie uzupelniony do postaci http://onet.pl/test.php itd...
cadavre
Daj przykład jak wygląda to w pliku tekstowym.
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.