генератор запросов на PHP

Discussion in 'PHP' started by Romanka, 19 Aug 2009.

  1. Romanka

    Romanka New Member

    Joined:
    30 Mar 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Помогите пожалуйста, всю бошку сломал так и не получилось написать на пхп скрипт который будет из строки вида:
    я {люблю|обажаю} {помидоры|яблоки|груши}
    делала строки:
    я люблю помидоры
    я люблю яблоки
    я люблю груши
    я обажаю помидоры
    я обажаю яблоки
    я обажаю груши

    с возможностью задания неогран кол-ва синонимов
     
  2. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    Регулярками бери то что находится в фигурных скобках ... разделяй explode`ом знак "|" и загоняй в 2 массива ... а дальше думаю понятно)
     
  3. Romanka

    Romanka New Member

    Joined:
    30 Mar 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Так и делал а вот далее, как массивы обработать не доходит
     
  4. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    _http://blog.gtalex.ru/php-skript-perebora-variantov-po-shablonu
     
  5. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    эмм массивы обработать не можешь??
    echo $massiv[rand(0,count($massiv))];
     
  6. Romanka

    Romanka New Member

    Joined:
    30 Mar 2008
    Messages:
    5
    Likes Received:
    1
    Reputations:
    0
    Большое спасибо вам за помощь, все супер работает!!!
     
    1 person likes this.
  7. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    PHP:
    <?php 
    $text
    'я {люблю|обажаю} {помидоры|яблоки|груши}'
    preg_match('#{(.*)}\s{(.*)}#i',$text,$matches); 
    $like=$matches[1]; 
    $what=$matches[2]; 
    $likearray=explode('|',$like); 
    $whatarray=explode('|',$what); 
    echo 
    'я '.$likearray[rand(0,((count($likearray)-1)))].'  '.$whatarray[rand(0,((count($whatarray)-1)))]; 
    ?>
     
    #7 L I G A, 19 Aug 2009
    Last edited: 19 Aug 2009
    1 person likes this.
  8. FreShBY

    FreShBY Banned

    Joined:
    3 May 2009
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Все предложения не будут работать если будет к примеру не 2 {} скобки. А 20.
    Нужен рекурсивный вывод