Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [funkcje]Generator pytań i odpowiedzi z pliku, dwie funkcje - prosta i zaawansowana
.radex
post 9.09.2007, 17:24:24
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Dzisiaj wygrzebałem kolejną funkcję, a w zasadzie dwie.

Tryb prosty

  1. <?php
  2. function Pytania($z_kad){
  3. $pytania;
  4. $odpowiedzi;
  5. $numer = floor(rand(1,(count($z_kad)/2)));
  6. for($i=0;$i<count($z_kad);$i++){
  7. if($i % 2){
  8.  $odpowiedzi[] = $z_kad[$i];
  9. }else{
  10.  $pytania[] = $z_kad[$i];
  11. }
  12. }
  13. return array($numer, $pytania[$numer-1], $odpowiedzi[$numer-1]);
  14. }
  15. ?>


Tryb zaawansowany

  1. <?php
  2. function Pytania2($z_kad){
  3. for($i=0;$i<count($z_kad);$i++){
  4. if($z_kad[$i]{0} == ')'){
  5. $max_pyt++;
  6. }
  7. }
  8. $numer = floor(rand(1,$max_pyt));
  9.  
  10. for($i=0;$i<count($z_kad);$i++){
  11. if($z_kad[$i]{0} == ')'){
  12. $ac_pyt++;
  13. }
  14. if($ac_pyt == $numer){
  15.  if($z_kad[$i]{0} == ':'){
  16.  $odpowiedzi[] = substr($z_kad[$i], 1);
  17.  }elseif($z_kad[$i]{0} == ')'){
  18.  $pytanie = substr($z_kad[$i], 1);
  19.  }
  20. }
  21. }
  22. return array($numer , $pytanie, $odpowiedzi);
  23. }
  24. ?>


Opis trybu prostego
Linijki o numerach parzystych (przy numeracji od zera) lub nieparzystych (jeśli od 1) będą pytaniami, a linijki pod nimi będą odpowiedzią. Jeśli liczba linijek będzie nieparzysta to system to wykryje

Przykład:

(dla przykładu na samym dole: pytania.txt)
Kod
2*5=
10
Adam Mickiewicz ma na imie?
Adam
Pierwiastek kwadratowy z 16
4
Kolejne pytanie
kolejna odpowiedz
Pytanie ktore sie nie wyswietli


Opis trybu zaawansowanego
Linijki zaczynające się od ) będą pytaniami,
linijki zaczynające się od : będą odpowiedziami,
natomiast linijki które nie zaczynają się od ) lub : będą komentarzem

Przykład:

(dla przykładu na samym dole: pytania2.txt)
Kod
)Pytanie 1
:odpowiedz pierwsza
:odpowiedz druga
komentarz
:tdadadakda
jeszcze jeden komentarz
)Pytanie drugie
kolejny komentarz
:Tylko jedna odpowiedz


Przykład:

  1. <?php
  2. $pytodp = Pytania(file('pytania.txt'));
  3.  
  4. echo 'Numer: '.$pytodp[0].'<br>Pytanie: '.$pytodp[1].'<br>Odpowiedz: '.$pytodp[2].'<br>';
  5.  
  6. echo '<br><br><br>';
  7.  
  8. $pytodp = Pytania2(file('pytania2.txt'));
  9.  
  10. echo 'Numer: '.$pytodp[0].'<br>Pytanie: '.$pytodp[1].'<br>Odpowiedzi:<br><ul>';
  11.  
  12. for($i=0;$i<count($pytodp[2]);$i++){
  13.  
  14. echo '<li>'.$pytodp[2][$i].'</li>';
  15.  
  16. }
  17. echo '</ul><br>';
  18. ?>



Ten post edytował radex_p 9.09.2007, 17:46:14


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Moli
post 9.09.2007, 17:39:23
Post #2





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


A jakieś zastosowanie tego ? Bo ja nie widze niczego sensownego w czym mogl bym to uzyć.
Go to the top of the page
+Quote Post
.radex
post 9.09.2007, 17:42:35
Post #3





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


hmmm... w zasadzie nie wiem po co napisałem ten skrypt, ale zastosowań jest mnóstwo:
stworzenie np. systemu ankiet, czy quizów
rodzaj zabezpieczenia antyspamowego,
itd.

No i dodam że źle określiłem nazwę tematu (... z pliku), ponieważ równie dobrze wpisy mogą być w DB


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Baster
post 9.09.2007, 17:43:04
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.04.2007

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


Może jakiś gotowy przykład...Chciałbym zobaczyć jak działa w "praktyce"
Go to the top of the page
+Quote Post
.radex
post 9.09.2007, 17:45:23
Post #5





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Widać, że nie umiesz czytać ze zrozumieniem winksmiley.jpg

  1. <?php
  2. $pytodp = Pytania(file('pytania.txt'));
  3.  
  4. echo 'Numer: '.$pytodp[0].'<br>Pytanie: '.$pytodp[1].'<br>Odpowiedz: '.$pytodp[2].'<br>';
  5.  
  6. echo '<br><br><br>';
  7.  
  8. $pytodp = Pytania2(file('pytania2.txt'));
  9.  
  10. echo 'Numer: '.$pytodp[0].'<br>Pytanie: '.$pytodp[1].'<br>Odpowiedzi:<br><ul>';
  11.  
  12. for($i=0;$i<count($pytodp[2]);$i++){
  13.  
  14. echo '<li>'.$pytodp[2][$i].'</li>';
  15.  
  16. }
  17. echo '</ul><br>';
  18. ?>


a trochę wyżej masz przykłady plików (patrząc na pliki będzie to pytania.txt i pytania2.txt)


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Baster
post 9.09.2007, 17:52:53
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.04.2007

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


Nie zrozumieliśmy się trochę. Chodziło mi o jakąś stronę gdzie zastosowałeś ten generator winksmiley.jpg
Ps: Czytać ze zrozumieniem umiem ;p
Go to the top of the page
+Quote Post
.radex
post 9.09.2007, 18:03:05
Post #7





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Aha. No więc przepraszam. Prześle na serwer winksmiley.jpg

http://radex.byethost18.com/Fnc/pytania.php

A pliki:

http://radex.byethost18.com/Fnc/pytania.txt
http://radex.byethost18.com/Fnc/pytania2.txt


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Baster
post 9.09.2007, 18:12:10
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.04.2007

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


Oto własnei mi chodziło. Dziękuje i mam nadzieję ze więcej nie będziemy mieć takich nieporozumień.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:03