Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Помогите подправить модуль


Автор: viperson 3.7.2009, 15:43
Здравствуйте! 

Помогите подправить модуль

Код

function Get_namedesc(){
    global $colrel;
    $db = file("keys.txt");
    $cdb = count($db) - 1;
    $ul = '';
    $li1 = ', ';
    $li2 = '';
    $ul2 = '';
    for ($i = 0; $i <= $colrel; $i++){
        $rnd = rand(0, $cdb);
        $lop = $db[$rnd];
        $str = $li1.$lop.$li2;
        $end .=$str;
    }
    $sdr = $ul.$end;
    $der = $sdr.$ul2;
    return $der;
}


Этот модуль парсит фразы из текстового файла, в котором фразы расположены по одной на строке. После парсинга все это хозяйство вставляется в другой текстовый файл в следующем виде:

, солнце греет
, трава пахнет
, птицы поют


а мне необходимо: 

, солнце греет, трава пахнет, птицы поют

то есть куда добавить стринг реплейс чтобы убрать эти переносы? 

я пробовал вставить после строки 3 следующее:

                $db = str_replace("\n", "", $db);

не помогает. Помогите плиз с примерами smile 

Автор: icewind 3.7.2009, 16:34
Код

function Get_namedesc(){
    global $colrel;
    $db = file("keys.txt");
    $cdb = count($db) - 1;
    $ul = '';
    $li1 = ', ';
    $li2 = '';
    $ul2 = '';
    for ($i = 0; $i <= $colrel; $i++){
        $rnd = rand(0, $cdb);
        $lop = str_replace("\n", "", $db[$rnd]);
        $str = $li1.$lop.$li2;
        $end .=$str;
    }
    $sdr = $ul.$end;
    $der = $sdr.$ul2;
    return $der;
}

Автор: viperson 3.7.2009, 17:38
Цитата(icewind @ 3.7.2009,  16:34)
Код

function Get_namedesc(){
    global $colrel;
    $db = file("keys.txt");
    $cdb = count($db) - 1;
    $ul = '';
    $li1 = ', ';
    $li2 = '';
    $ul2 = '';
    for ($i = 0; $i <= $colrel; $i++){
        $rnd = rand(0, $cdb);
        $lop = str_replace("\n", "", $db[$rnd]);
        $str = $li1.$lop.$li2;
        $end .=$str;
    }
    $sdr = $ul.$end;
    $der = $sdr.$ul2;
    return $der;
}

icewind, к сожалению не помогло  smile  Не знаю в чем вся фишка

Автор: bars80080 3.7.2009, 17:44
а если заменить ещё \r на пустую строку?

Автор: viperson 3.7.2009, 17:50
Цитата(bars80080 @ 3.7.2009,  17:44)
а если заменить ещё \r на пустую строку?

код выложи плиз

дело в том что при запуске парсится 5-6 фраз и как это применить к модулю?

А если двойной парсинг сделать? Первый результат записать во временный файл, а уже из временного файла сделать стринг реплейс?

Только не знаю как это реализовать. smile 

Автор: viperson 3.7.2009, 18:33
Решил другим способом!!!  smile 

Код

function Get_namedesc(){
    global $colrel;
    $db = file("keys.txt");
    $cdb = count($db) - 1;
    for ($i = 0; $i < 4; $i++){
        $rnd  = rand (0, $cdb);
        $k = trim($db[$rnd]);
        $zap = ',';
        $str = $k.$zap;
        if ($i >= 3){
            $str = $k;
        }
        $ot .= $str;
    }
    return $ot;
}


Спасибо за внимание!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)