Поделить текст на киворды

Тема в разделе "Коммерческие", создана пользователем deling2, 14 сен 2008.

Информация :
Публиковать (для всех) нуленые версии, особенно от modulesgarden КАТЕГОРИЧЕСКИ не стоит. Тема мониторится оным разработчиком, а к нам приходят абузы которые нельзя игнорировать.
Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. deling2

    deling2

    Регистр.:
    27 янв 2008
    Сообщения:
    326
    Симпатии:
    214
    Столкнулся с такой задачей. Есть текст, а мне его надо поделить на киворды, тее разбить весь такст по строкам, и чтоб можно было указывать сколько слов должно быть в строке.
    В Textpipe pro не умею создавать фильтры, а готовых под эту задачу не нашел :(
    Может у кого есть готовый скриптик? Буду весьма благодарен.
    PS Разбить по одному слову можно легко и в Ворде, просто заменить пробел на ^p, а вот разбить по несколько слов там уже нельзя.
     
  2. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    Вот написал пару строк. Скармливай скрипту файлик key.txt в той же директории, что и сам скрипт - выдача будет в newkey.txt
    В данном случае текст разбивает на предложения по 4 слова в каждом(Хотя это все можешь поменять ессесна :) :(

    Код:
    <?php
    $file_in = "key.txt"; // Your input file
    $wordsnum = 4; // How many words do you need in the output sentence
    $file_out = "newkey.txt"; // Your output file
    
    // Open and read the file
    $fn = fopen($file_in, "r");
    while (!feof($fn)) {
      $content .= rtrim(fgets($fn));
    }
    fclose($fn);
    
    // Delete shit characters and turn to lower case
    $shit = array(".", ",", "!", ";", ":", "?", "..", "...");
    $content = str_replace($shit, " ", $content);
    $content = str_replace("  ", " ", $content);
    $content = strtolower($content);
    
    // Make an array from modified content of file
    $array = explode(" ", $content);
    
    // Construct new sentences with desired number of words
    $count = count($array);
    $j = 0;
    
    for ($i=0; $i<$count; $i++) {
      $new_content .= $array[$i]." ";
      $j++;
      if ($j == $wordsnum) {
        $new_content .= "\r\n";
        $j = 0;
      }
    }
    
    // Write to file
    $fn = fopen($file_out, "w");
    fwrite($fn, $new_content);
    fclose($fn);
    
    ?>
     
    deling2 нравится это.
Статус темы:
Закрыта.