Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Baaardzo dziwny problem, VertrigoServ, Kod inaczej wykonuje się na domowym komputerze, a inaczej na serwerze?
robert-s
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 24.05.2012

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


Jak to jest w ogóle możliwe? (IMG:style_emoticons/default/co_jest.gif) Kod pochodzi z tego miejsca: http://www.progresowi.pl/2011/10/26/robimy-mieszarke.html Jest to mieszarka synonimów.

  1. <?php
  2. class SEOMixer
  3. {
  4. public $input;
  5. public $output;
  6. public $limit = 1;
  7. private $braces = array("{", "}");
  8. private $delimiter = "|";
  9. function __construct($input)
  10. {
  11. $this->input = $input;
  12. }
  13. function mixAll()
  14. {
  15. $this->output = $this->input;
  16. while (strpos($this->output, $this->braces['1']) !== false)
  17. {
  18. $closed = strpos($this->output, $this->braces['1']);
  19. $substr = substr($this->output, 0, $closed + 1);
  20. $from = strrpos($substr, $this->braces['0']);
  21. $substr = substr($substr, $from);
  22. $_substr = $this->mixText($substr);
  23. $this->output = str_replace($substr, $_substr, $this->output);
  24. $substr = "";
  25. $_substr = "";
  26. }
  27. return;
  28. }
  29. function mixText($text)
  30. {
  31. $text = str_ireplace($this->braces, "", $text);
  32. $elements = explode($this->delimiter, $text);
  33. return $elements[array_rand($elements)];
  34. }
  35. function mix()
  36. {
  37. $this->mixAll();
  38. return $this->output;
  39. }
  40. }
  41. //tylko to dopisałem ja
  42. $tekst_do_mieszania = '{jakieś|{synonimy|zagnieżdżone}}';
  43. $mieszarka = new SEOMixer($tekst_do_mieszania);
  44. $text_wymieszany = $mieszarka->mix();
  45. echo $text_wymieszany;
  46. ?>


Problem dotyczy bardzo długich tekstów z zagnieżdzonymi synonimami, przy krótkich wydaje się że jest ok. Mój ma 86188 znaków, jest w nim 100 zdań i losuje się jedno z nich. Dodatkowo każdy wyraz ma synonimy. Po wysłaniu na serwer wszystko działa jak trzeba. Natomiast gdy odpalam to na domowym komputerze (zainstalowany VertrigoServ) źle miesza. W kółko wyskakuje około 5 dokładnie takich samych zdań. Najlepsze jest to, że zawsze pojawiają się w tej samej kolejności! Jakim cudem tak się dzieje? (IMG:style_emoticons/default/co_jest.gif) Czy może powstawać jakiś bład wynikły z konfiguracji VertrigoServ? W zasadzie to nic w ustawieniach nie zmieniałem.

Ten post edytował robert-s 26.06.2012, 21:47:14
Go to the top of the page
+Quote Post

Posty w temacie


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: 22.08.2025 - 22:06