witajcie
znalaazłem w sieci taki generator tekstów
https://packagist.org/packages/liderman/php-text-generator
autor twierdzi że wszystko powinno działać, a mi urywa teksty, nie losuje całego zdania, tylko bliżej nieokreślone fragmenty:
function getRandomPart($text) { $openLevel = 0; $lastPos = 0; $isIgnore = false; $parts = http://www.php.net/array(); $textLen = mb_strlen($text, 'UTF-8'); for ($i = 0; $i < $textLen; $i++) { $currentChar = mb_substr($text, $i, 1, 'UTF-8'); if ($currentChar === '{') { $openLevel++; $isIgnore = true; continue; } if ($currentChar === '}') { $openLevel--; if ($openLevel === 0) { $isIgnore = false; } continue; } if ($isIgnore === true) { continue; } if ($currentChar === '|') { $parts[] = mb_substr($text, $lastPos, ($i - $lastPos), 'UTF-8'); $lastPos = $i + 1; } } $parts[] = mb_substr($text, $lastPos, null, 'UTF-8'); return $parts[http://www.php.net/array_rand($parts)]; } function generate($text) { $startSafePos = 0; $startPos = 0; $endPos = 0; $openLevel = 0; $isFind = false; $result = ''; $textLen = mb_strlen($text, 'UTF-8'); for ($i = 0; $i < $textLen; $i++) { if (mb_substr($text, $i, 1, 'UTF-8') === '{') { if ($openLevel === 0) { $startPos = $i; $result .= mb_substr($text, $startSafePos, $startPos - $startSafePos, 'UTF-8'); } $openLevel++; continue; } if (mb_substr($text, $i, 1, 'UTF-8') === '}') { $openLevel--; if ($openLevel === 0) { $isFind = true; $endPos = $i; $startSafePos = $i + 1; $result .= generate( getRandomPart( mb_substr($text, $startPos + 1, $endPos - ($startPos + 1), 'UTF-8') ) ); continue; } } } if ($isFind === false) { return $text; } return $result . mb_substr($text, $endPos + 1, null, 'UTF-8'); } http://www.php.net/echo generate("{Good {morning|evening|day}|Goodnight|Hello}, {friend|brother}! {How are you|What's new with you}?");
Czemu nie uzyjesz kodu autora jako calosc tylko wyciales pare metod z klasy i na nich dzialasz? Nie sadzisz ze najzwyklej w swiecie popelniles blad podczas wycinania??
Oczywiście, że testowałem cały kod i efekty są takie same, raczej niemożliwe, żeby klasa się źle odpaliła
Ja tam pobralem te klase i odpalilem podane tam przyklady i jakos wszystko dziala. Autor stworzyl tez testy i tez dzialaja wiec raczej ty cos tam namotales.
Dziękuję za pochylenie się nad tym.
Może winą jest moja wersja PHP. Ja mam 5.3 autor wymaga 5.4.9
Może ktoś da linka do jakiegoś tutoriala jak korzystać z takich testów. ja w obiektowym jestem bardziej niż początkujący.
Nie mozesz zrobic upgrade php? 5.3 to dosc stary....
Co do testow to jest to phpunit. Tobie i tak to do niczego nie potrzebne tutaj wiec po co se glowe zawracasz testami? Testy tylko by pokazac ze dziala i dziala. Wina pewnie w tej wersji php.
tak, po podniesieniu php na 5.5 zadziałała zarówno klasa jak i wyjęta z niej sama metoda funkcyjnie
dziękuję, bo sam bym się poddał
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)