Как вставить в текст кеи?

Тема в разделе "PHP", создана пользователем Bester777, 18 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Bester777

    Bester777 Постоялец

    Регистр.:
    24 июл 2009
    Сообщения:
    67
    Симпатии:
    0
    Задача такова. Есть текст, нужно в него вставить заданное колличество кеев. Думаю как лучше сделать в случаном порядке или по какому признаку. Надо их вставить в предложения. Подскажите пожалуйста.
     
  2. VmpAkV

    VmpAkV

    Регистр.:
    24 июн 2008
    Сообщения:
    195
    Симпатии:
    13
    В зависимости от цели
     
  3. Bester777

    Bester777 Постоялец

    Регистр.:
    24 июл 2009
    Сообщения:
    67
    Симпатии:
    0
    Для постов, примерно 20 - 25 предложений в посте, нужно вставить 3-6 кеев в этип рпедложения.
     
  4. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    1. Разбей текст на слова в массив (по пробелам)
    2. Дальше в пройдись по массиву и зависимости от нужного кол-ва добавь к рандомным кеи
    3. Собери массив обратно в текст.
     
  5. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    чтобы равномернее кеи находились в тексте, дели не по словам ,а по предложениям (на этом форуме уже обсуждались методы деления текста).
    Разделил, посчитал через какой промежуток ставить кеи..Разделил потом предложения на слова, вставил кей. Если вначало попалось, то пишешь с большой буквы кей..если в конец, то можно приписать доп. слова к кею и поставить вопрос или знак восклицания.
     
  6. Bester777

    Bester777 Постоялец

    Регистр.:
    24 июл 2009
    Сообщения:
    67
    Симпатии:
    0
    Спасибо за идеи! Как разбить текст на слова или предложения я понял, как собрать соотвественно тоже. Но как вставить в режиме ранд или с определенным промежутком, ума не приложу, пробую, пробую кодить, а одни ошибки. Если не сложно напишите пожалуйста)
     
  7. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    не тестил,
    если б сходу, то делал бы как то так
    PHP:
    // $keys - массив с ключами
    // $wordarray - массив с словами
    $i 0;
    while(
    $wordarray[$i]){
    $fl rand(4,6); 
    $i += $fl;
    if(
    $wordarray[$i]) $wordarray[$i] .= ' '.$keys[rand(0,sizeof($keys)-1)];
    }
     
    Bester777 нравится это.
  8. Bester777

    Bester777 Постоялец

    Регистр.:
    24 июл 2009
    Сообщения:
    67
    Симпатии:
    0
    Немного изменил условие цикла, чтобы он выполнялся столько раз сколько кеев в массиве $keys. Но не работает ( До измениний тож что то не работал. Что не так посмотрите.

    $keys = file("C:\Program Files\...\Title.txt");
    $content = file_get_contents("C:\Program Files\...\Content.txt");
    $content1 = str_replace("\r\n", "", $content);
    $for_keys = explode(" ",$content1);
    $a=count($keys);
    $i = 0;
    while($for_keys[$i]++<$a){//выполняет цикл в зависимости от кол-ва кеев
    $fl = rand(0,500);//берет случайное значение от 0 до 500
    $i += $fl; // 0 + случайное значение $fl
    if($for_keys[$i]) $for_keys[$i] .= ' '.$keys[rand(0,sizeof($keys)-1)];
    }

    ---------- Post added at 11:27 ---------- Previous post was at 10:07 ----------

    Я заменил строку $i += $fl; на $i = $fl; у меня висла система(двухядерник 2 гб оперативки)В итоге получается 3-4 кея в предложении. Вот так.

    Operatinh system. After the given operation the user 77777777777777 gets 00000000000001 to the menu of safe modes. Here it 77777777777777 is necessary 77777777777777 to choose the first 77777777777777 point 00000000000001 Safe 00000000000001 Mode/Безопасный a 00000000000001 mode 00000000000001 and to 77777777777777 press Enter. 77777777777777 After 77777777777777 the lapse of 77777777777777 several 77777777777777 seconds 77777777777777 Vista 00000000000001 will 00000000000001 00000000000001 display 00000000000001 an authorisation 77777777777777 window 00000000000001 (a comment 77777777777777 a 00000000000001 logon-sreen) 77777777777777 with 77777777777777 two possible options: Administrator/Администратор and Other User/Другие users. 00000000000001 We choose the accounting 00000000000001 record of the manager. Loading of the 00000000000001 77777777777777 accounting 00000000000001 77777777777777 77777777777777 record 77777777777777 of the manager in 77777777777777 a 77777777777777 00000000000001 safe mode 77777777777777 simultaneously 00000000000001 00000000000001

    Я работаю обычно с 3-6 кеями в статье, хотелось бы чтобы 1 кей повторялся 2 раза, ну или 1 в во всем тексте. А получилось помоему это как то люто, хоть и нужно для ГС под гугл))
     
  9. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Свой только что проверял, все работает.
    если это в моем скрипте, то конечно, ты бесконечный цикл сделал
    это значит что кей вставится через каждое рандомное число слов от 0 до 500
    если нкжно реже кеи вставлять, то и нижнюю планку(0) нужно подымать
    $fl = rand(200,300); примерно каждые 200-300 слов
     
  10. Bester777

    Bester777 Постоялец

    Регистр.:
    24 июл 2009
    Сообщения:
    67
    Симпатии:
    0
    Все работает теперь! Только вот rand, помоему как-то неважно справляеться с возложенной задачей. Например 4 кея 1;2;3;4, он может сгенерить 1444, 1122, то есть не все кеи способен вытащить. Как тут быть?
     
Статус темы:
Закрыта.