Recursive php spintax class помогите к скрипту прикрутить

grendmaster

Постоялец
Регистрация
21 Апр 2010
Сообщения
67
Реакции
2
Привет всем, никак не хочет работать этот класс в моем скрипте,вернее сказать класс сам по себе работает отлично,но когда вместо текста ставлю переменную тут и возникают ошибки

Сам класс:
Код:
<?php
class Spintax {
 
  function spin($str, $test=false)
  {
      if(!$test){
        do {
            $str = $this->regex($str);
        } while ($this->complete($str));
        return $str;
      } else {
        do {
            echo "<b>PROCESS: </b>";var_dump($str = $this->regex($str));echo "<br><br>";
        } while ($this->complete($str));
        return false;
      }
  }
 
  function regex($str)
  {
      preg_match("/{[^{}]+?}/", $str, $match);
      // Now spin the first captured string
      $attack = explode("|", $match[0]);
      $new_str = preg_replace("/[{}]/", "", $attack[rand(0,(count($attack)-1))]);
      $str = str_replace($match[0], $new_str, $str);
      return $str;
  }
 
  function complete($str)
  {
      $complete = preg_match("/{[^{}]+?}/", $str, $match);
      return $complete;
  }
}

Как использовать:
Код:
<?php
include("spintax.class.php");
$spintax = new Spintax;
// Add true to the spin functions to debug and see each line as it is spun in the process
$spintax->spin("{{Hello|Hi} my name is {Ron|Ronald}|Another random {sentence|{statement|phrase|saying}}}");

Нашел здесь: Для просмотра ссылки Войди или Зарегистрируйся

Как здесь вместо текста вставить переменную?
$spintax->spin("{{Hello|Hi} my name is {Ron|Ronald}|Another random {sentence|{statement|phrase|saying}}}");

Нужно $spintax->spin('$title');
$title = file('titles.txt');

Понимаю что ошибка скорее всего из-за неправильного чтения файлов,подскажите плиз как правильно?

$title = file('titles.txt'); здесь заработало так $title = file_get_contents('titles.txt')
titles.txt - одна строка {KEY1|KEY2|KEY3}

description.txt - много строк и не работает
{KEY1|KEY2|KEY3}
{KEY7|KEY6|KEY1}
{KEY9|KEY4|KEY2}
как description.txt читать построчно и целиком одновременно?
 
Код:
$title = file_get_contents('titles.txt');
 
$stroks=explode("\r\n",$title);
foreach ($stroks as $ind=>$val){
$spintax->spin($val);
}

Как то так наверное!
 
Спасибо за участие D1mka но не помогло,скрипт делаю под xhe, он вот что пишет:
Warning: urlencode() expects parameter 1 to be string, array given in C:\Program Files\XWeb\Human Emulator\Templates\Objects\DOM\xhe_input.php on line 130

Ьлин может есть более простое решение рандомизировать текст?
 
Назад
Сверху