Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyświetlanie tekstu do wylosowanej linijki z oddzielnego pliku txt, Wyświetlanie obrazka do wylosowanej linijki z oddzielnego pliku txt
Kangoor12
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


A więc mam osobny plik .txt i w tym pliku na każdą linijkę kodu przypada jakaś nazwa.

Skrypt wygląda tak:

  1. <?php
  2. $cytat=file("losowanie.txt");
  3. echo $cytat[array_rand($cytat)];
  4. ?>


I załóżmy, że jeżeli wypadnie nazwa "Kangur" to chce wyświetlić jakiś tekst. Próbowałem takiego czegoś ale nie działa:

  1. <?php
  2.  
  3. $cytat=file("losowanie.txt");
  4. echo $cytat[array_rand($cytat)];
  5.  
  6. switch ($cytat) {
  7. case (Kangur):
  8. echo ("rodzaj torbaczy z rodziny kangurowatych. Są endemitami australijskiej krainy zoogeograficznej.");
  9. break;
  10. }
  11.  
  12. ?>


Dlaczego nie chce wpisać tego tekstu od razu do pliku .txt? Bo potem tekst chce zastąpić obrazkiem a do pliku .txt chyba obrazka nie dam.

Dlaczego ten kod nie działa? Próbowałem już wszystkich kombinacji z " i ' ale to nic nie daje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
trzczy
post
Post #2





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Włącz obsługę błędów i zobacz, w której linii masz błąd. Na 1. rzut oka błąd jest tam gdzie "Kangur", bo to ani zmienna, ani łańcuch. http://php.net/manual/en/control-structure...php#example-118

Ten post edytował trzczy 19.11.2017, 19:31:03
Go to the top of the page
+Quote Post
Kangoor12
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


Robię to na cba.pl i właśnie nie wykrywa mi żadnego błędu. Po prostu wyświetla mi tylko nazwę Kangur a tekstu z echo już nie.
Go to the top of the page
+Quote Post
trzczy
post
Post #4





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Obsługę błędów włącza się w skrypcie:

  1. ini_set('display_errors', true);
Go to the top of the page
+Quote Post
Kangoor12
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


Nie wyświetla żadnych błędów
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A powinno coś w stylu use of undefined constant kangur. Nie testuj na serwerze tylko postaw sobie serwer lokalnie i na tym sprawdzaj kod.
I poczytaj o stringach w dokumentacji PHP.
Go to the top of the page
+Quote Post
StreetFighter
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $cytat=file("losowanie.txt");
  4. $cytat = $cytat[array_rand($cytat)];
  5.  
  6. echo $cytat; //edit: jeżeli chcesz wyświetlić wylosowany ciąg
  7.  
  8. switch ($cytat) {
  9. case ('Kangur'):
  10. echo ("rodzaj torbaczy z rodziny kangurowatych. Są endemitami australijskiej krainy zoogeograficznej.");
  11. break;
  12. }
  13.  
  14. ?>


Ten post edytował StreetFighter 19.11.2017, 20:42:58
Go to the top of the page
+Quote Post
Kangoor12
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


StreetFighter – twój kod nic nie zmienia, dalej jest to samo.

Postawiłem XAMPPA i dalej to samo. Nie wyświetla żadnych błędów.
Go to the top of the page
+Quote Post
trzczy
post
Post #9





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


2 podpowiedzi:

1. Umieść w kodzie coś, co na pewno jest błędem i przekonaj się, czy błąd się wyświetli.

2. Wstaw po 3. linii
  1. var_dump($cytat);
i przekonaj się, czy do 3. linii wszystko działa zgodnie z twą intencją. Potem, ewentualnie, rób var_dump dla kolejnych wyrażeń w kodzie. Czyli normalnie debuguj linia po linii.

Ten post edytował trzczy 20.11.2017, 19:25:33
Go to the top of the page
+Quote Post
StreetFighter
post
Post #10





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Cytat(Kangoor12 @ 19.11.2017, 22:06:35 ) *
StreetFighter – twój kod nic nie zmienia, dalej jest to samo.

Postawiłem XAMPPA i dalej to samo. Nie wyświetla żadnych błędów.


mój kod działa, sprawdziłem zanim go wstawiłem!!!

funkcjonalność którą próbujesz zrobić to żadna filozofia,

może masz coś źle w pliku txt lub czegoś nie masz,

edit: przepraszam, nie includowałem pliku, tylko sprawdziłem na array, masz poniżej działający i przetestowany kod:
  1. <?php
  2.  
  3. $cytat=file("losowanie.txt");
  4.  
  5. $cytat = str_replace("\r\n", '',$cytat);
  6. $cytat = $cytat[array_rand($cytat)];
  7.  
  8. echo $cytat; //edit: jeżeli chcesz wyświetlić wylosowany ciąg
  9.  
  10. switch ($cytat) {
  11. case 'Kangur':
  12. echo (" rodzaj torbaczy z rodziny kangurowatych. Są endemitami australijskiej krainy zoogeograficznej.");
  13. break;
  14. }
  15.  
  16. ?>


Ten post edytował StreetFighter 20.11.2017, 20:39:22
Go to the top of the page
+Quote Post
Kangoor12
post
Post #11





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


Ciekawa sprawa, na XAMPPIE teraz wszystko elegancko śmiga, ale na cba.pl już nie. Dlaczego?
Go to the top of the page
+Quote Post
StreetFighter
post
Post #12





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


czekaj sprawdze na cba.pl

edit: działa na cba

plik: losowanie.txt
Kod
Kangur
Kot
Pies


Ten post edytował StreetFighter 20.11.2017, 21:08:52
Go to the top of the page
+Quote Post
Kangoor12
post
Post #13





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


Patrze na kod od XAMPPA i cba.pl od 30 minut i pomimo, że przekopiowałem ten kod z XAMPPA gdzie kod działa to nie działa na tym cba, nie mam pojęcia o co chodzi

Przekopiowałem nawet twój kod i nie działa: zobacz

Ten post edytował Kangoor12 20.11.2017, 21:48:02
Go to the top of the page
+Quote Post
viking
post
Post #14





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Przecież przy każdej odsłonie losuje jakieś słowo i je wyświetla. Co nie działa?
Go to the top of the page
+Quote Post
szajens
post
Post #15





Grupa: Zarejestrowani
Postów: 150
Pomógł: 4
Dołączył: 3.01.2010

Ostrzeżenie: (0%)
-----


Cytat(Kangoor12 @ 20.11.2017, 21:46:13 ) *
Patrze na kod od XAMPPA i cba.pl od 30 minut i pomimo, że przekopiowałem ten kod z XAMPPA gdzie kod działa to nie działa na tym cba, nie mam pojęcia o co chodzi

Przekopiowałem nawet twój kod i nie działa: zobacz


kod na cba

Kod działa, masz powyżej linka na cba


PS. Najtańszy normalny serwer to jakieś 3zl po co korzystać z darmowego
Go to the top of the page
+Quote Post
StreetFighter
post
Post #16





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Czym edytujesz pliki? Może zamiast końca Lini rn wstaw samo n w przypadku linuxa lub samo r jak to mac.
Go to the top of the page
+Quote Post
Kangoor12
post
Post #17





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2017

Ostrzeżenie: (0%)
-----


Cytat(StreetFighter @ 20.11.2017, 23:11:16 ) *
Czym edytujesz pliki? Może zamiast końca Lini rn wstaw samo n w przypadku linuxa lub samo r jak to mac.


Dokładnie tu był pies pogrzebany! Mimo, że zapisywałem plik w CRLF to dalej zostawało samo LF i nie mogę tego zmienić nie wiedzieć czemu.
Wystarczyło usunąć \r i zostawić samo "\n" i teraz już wszystko działa (IMG:style_emoticons/default/smile.gif) .

Dzięki wielkie za pomoc! (IMG:style_emoticons/default/smile.gif)

Jeszcze spytam: jak zmienić wielkość czcionki w echo? Próbuje dać znacznik <font size="n"></font> do środka echo ale wywala błąd.
Go to the top of the page
+Quote Post
viking
post
Post #18





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Wchodzisz w dokumentację file i czytasz o flagach FILE_IGNORE_NEW_LINES.
Wielkość i inne rzeczy edytuj w CSS.
Go to the top of the page
+Quote Post
StreetFighter
post
Post #19





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Dokładnie viking ma rację, lepiej zamiast str_replace użyć ignore , tak myślałem że powinny być jakieś ustawienia, ale nie sprawdzałem w manualu. Za to spostrzeżenie wielki plus, to tylko potwierdza że trzeba dokładnie czytać manuala
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 07:46