Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]funkcja rand i include
Forum PHP.pl > Forum > Przedszkole
arturdob
  1. <?php
  2.  
  3. $cytat[] = "cyt.txt";
  4. $cytat[] = "cyt1.txt";
  5. $cytat[] = "cyt2.txt";
  6.  
  7. include ("echo $cytat[rand(0, 2)]");
  8.  
  9. ?>

Witam wszystkich, coś namieszałem z include i nawiasami. Bez include wyświetla się tylko losowa nazwa pliku. Chcę wyświetlić losowy cytat, w tabeli mam nazwy plików z cytatem.
lukasz_os
echo w include na pewno nie pomoże smile.gif
Turson
Po co to echo tam?
arturdob
  1. <?php
  2.  
  3. $cytat[] = "cyt.txt";
  4. $cytat[] = "cyt1.txt";
  5. $cytat[] = "cyt2.txt";
  6. $cytat[] = "cyt3.txt";
  7.  
  8.  
  9.  
  10. include ($cytat[rand(0,sizeof($cytat)-1)]);
  11.  
  12. ?>

czy tak jest ok? bo już działa.

  1. include ("$cytat[rand(0,sizeof($cytat)-1)]");

Jak dam zawartość w cudzysłów to nie działa.
lukasz_os
Przecież w cudzysłowie ci się funkcje nie wykonają bo są traktowane jak string. Pierwszy przykład dobry tylko mnie zastanawia po co trzymasz cytaty w oddzielnych plikach jak możesz w jednym(każdy cytat w nowej linii), wczytać go poprzez fopen, zrobić tablicę z cytatami poprzez explode i na tej podstawie zrobić rand().
arturdob
Fajnie by było zrobić tak jak mówisz, może z waszą pomocą mi się to uda. A co zrobić z długimi cytatami co maja kilka linijek i po nich jest odstęp 2 linijki na autora? Jak z pliku tekstowego zrobić taka bazę czym pooddzielać cytaty?
ok, mam cytaty w jednym pliku cytaty.txt, po każdym cytacie wstawiony separator \t czy \n nie wiem czy ma to jakieś znaczenie?
Teraz chcę sprawdzić czy otwiera się plik do odczytu, który przechowuje zmienna $rp (czy dobra ścieżka dostępu):
  1. <?php
  2.  
  3. $rp = fopen("cytaty.txt". 'r');
  4. echo $rp;
  5.  
  6. ?>

nie wyświetla zawartości pliku tylko bład sad.gif Dodałem odczyt z pliku nadal błąd sad.gif
  1. <?php
  2.  
  3. $rp = fopen("cytaty.txt". 'r');
  4. $cytaty = fgets($rp. 999);
  5. echo $cytaty;
  6.  
  7. ?>
nospor
Błąd, potem znowu błąd.... No to musisz go naprawić i jeszcze raz naprawić.

A jeśli oczekujesz od nas pomocy, to pomysl tak przez chwilkę. Nie sądzisz, że wypadałoby by nam podać, jakiż to tajemniczy błąd dostajesz? Jeśli zaś to naprawdę jest tajemnica wagi państwowej, to sorki, nie to forum. ABW pod innym adresem.
tzm
  1. $rp = fopen("cytaty.txt", "r");
  2. $cytaty = fgets($rp, 9999);
arturdob
Zamieniłem 2 kropki na przecinki i "r". Takie są błędy:

Warning: include(1test.php) [function.include]: failed to open stream: No such file or directory in /home/users/mareks/public_html/test2/index.php on line 23

Warning: include(1test.php) [function.include]: failed to open stream: No such file or directory in /home/users/mareks/public_html/test2/index.php on line 23

Warning: include() [function.include]: Failed opening '1test.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/users/mareks/public_html/test2/index.php on line 23
golabow
sprawdź czy ścieżka do pliku jest poprawna, wygląda jakby nie widział pliku
arturdob
plik jest w tym samym katalogu więc nie podawałem ścieżki tylko tak jak jest. już nie ma błedu (nie zamieniłem jednej kropki na przecinek)wyświetla tekst tylko do znacznika i znacznik też wyswietla:
Jedyna godna rzecz na świecie: twórczość, A szczyt twórczości to tworzenie siebie. Leopold Staff \t
Jaką funkcją teraz zrobić tablicę, żeby z niej losować czy fgetcsv()?
Napisałem tak:
  1. <?php
  2.  
  3. $rp = fopen("cytaty.txt", "r");
  4. $cytaty = fgetcsv($rp, 9999, "\t");
  5.  
  6.  
  7. ?>

Nadal wyświetla mi pierwszy wiersz z \t
Jak sprawdzić czy funkcja utworzyła tablicę?
po dopisaniu na dole:
  1. sort($cytaty);
  2. print_r($cytaty);

Wyświetla nadal tylko 1cytat z \t
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.