Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]losowanie
Forum PHP.pl > Forum > Przedszkole
milek45
Witam, korzystam z www.rssmix.com/rss2array-parser/. Jednak chciałem go przerobic tak, żeby losowało mi z kilku kanałów...

Standardowo parsowanie z jednego kanału wygląda tak

  1. <?php
  2. require("inc.rss2array.php");
  3. $rss_array = rss2array("http://rss.gazeta.pl/pub/rss/wiadomosci.xml");
  4. ?>


Ja natomiast przeksztaciłem go tak

  1. <?php
  2. require("inc.rss2array.php");
  3. $dane=file_get_contents('rss.txt');
  4. $dane=explode('+++++', $dane);
  5. $rss_array = rss2array($dane[rand(0,count($dane))];);
  6. ?>


Plik rss.txt wygląda tak
Kod
        http://rss.gazeta.pl/pub/rss/wiadomosci.xml
        +++++
        http://rss.gazeta.pl/pub/rss/swiat.xml


Gdzieś zrobiłem błąd, a nawet nie wiem czy dobrze to wygląda...

Prosiłbym o poprawienie lub podanie jakiego pomysłu jak to można inaczej rozwiązać
qwaq
  1. <?php
  2. require("inc.rss2array.php");
  3.  
  4. $dane=file('rss.txt');
  5. $rss_array = rss2array($dane[rand(0,count($dane))];);
  6. ?>


Plik rss.txt
Kod
        http://rss.gazeta.pl/pub/rss/wiadomosci.xml
        http://rss.gazeta.pl/pub/rss/swiat.xml


wyjaśnienie: zamieniłem funkcję explode na file

edit:
funkcja file() wrzuca ci linijki pliku do tablicy $dane
milek45
Pojawia mi się bład Parse error: syntax error, unexpected ';'

Ta linijka
  1. <?php
  2. $rss_array = rss2array($dane[rand(0,count($dane))];);
  3. ?>


Po zmienieniu na
  1. <?php
  2. $rss_array = rss2array($dane[rand(0,count($dane))]);
  3. ?>


Chodzi wszystko...

Tylko jest problem, ponieważ losuje czasami zero

Np. mam 15 linków to czasami nic się nie wyświetla (losuje pusty wiersz, którego nie ma)
qwaq
zmień na
  1. <?php
  2. $rss_array = rss2array($dane[rand(1,count($dane))]);
  3. ?>


powinno pomóc jak nie to "call me on GG"
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.