[Q] По поводу выбора рандомной строки из файла

Discussion in 'PHP' started by Deathdreams, 18 Mar 2009.

  1. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Собсна нужна помощь по выбору рандомной строки.
    я делаю вот так
    $quotes = 'uin.txt'; //тут полный путь стоит
    $quote = rand(0, sizeof($quotes)-1); //sizeof($quotes)-1); или 38(т.е. вручную вводить) все пробовал,без разницы
    $reflect = $quotes[$quote];
    $uinpass = explode(";",$reflect);//тут в рандомной строке разделяю нум на уин и пас
    $uin = $uinpass[0];
    $pass = $uinpass[1];
    А потом по классу webicqlite делаю подключение.
    Ошибка в том,что он мне пишет,что в строке $pass = $uinpass[1]; ошибка,неверный индекс 1.
    Вообщем очень нужна ваша помощь.
     
  2. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Выведи содержимое $reflect и $uinpass.
     
  3. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    не в этом дело.
    я как только код не изменял,всё время пишет ошибка в строке $pass = $uinpass[1];
    неверный индекс 1.
     
  4. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Неверный индекс 1 значит что в массиве нет такого элемента.
    Соотвественно нужно смотреть содержимое $reflect, и результат функции explode()
     
  5. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    результат выводится.я тестил только,чтобы выводилась рандомная строка,ещё не разделенная.
    Всё выводится.
    Что именно не понятно?
     
  6. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Не понятно в чём собственно проблема...
    1. Вы не можете получить рандомную строку.
    2. Вы получаете рандомную строку, но в $pass = $uinpass[1]; у вас выскакивает ошибка.
     
  7. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Вот именно.Рандомная строка вытаскивается.
    При разбиении на уин и пасс,у пасс он пишет,что ошибочный индекс 1 указан!
     
  8. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Сделай как здесь и не парь мосг:

    /thread111657.html
     
  9. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Ну раз уж вы не хотите светить формат содержимого в $reflect, то попробуйте заменить строку:
    $reflect = $quotes[$quote];
    На
    $reflect = 'Login;password';

    Если будет выскакивать ошибка напишите результат функции
    var_dump($uinpass);
     
  10. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Pashkela
    мне нужен,что рандомно отправителя сделать.
    Из списка асек.
     
  11. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    2 Gray_Wolf
    Я же вроде раскрыл содержимое переменной.
    $reflect = $quotes[$quote];
    где quotes и quote результат действия $quote = rand(0, sizeof($quotes)-1);
    от файла uin.txt в переменной $quotes ($quotes = 'uin.txt';)
     
  12. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Deathdreams
    Эээ, вместо $quotes = 'uin.txt'; //тут полный путь стоит
    Должно быть $quotes= file('uin.txt');

    А вообще:
    PHP:
    $quotes file('uin.txt');
    list(
    $uin,$pass)=explode(';',array_rand($quotes));
     
    _________________________
  13. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Gifts
    у меня так и стоит.
    $source = 'uin.txt';
    $file_s = file($source);
    я не написал это просто.поставил самое главное
     
  14. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    2Gifts
    Он же вроде сказал что рандомная строка верно выбирается...

    2Deathdreams
    ну а если подставить то что я сказал, какой результат?
     
  15. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Gifts
    Notice: Undefined offset: 1 in /var/www/vhosts/****/httpdocs/****/index.php on line 123
    указывает на строку list($uin,$pass) = explode(';',array_rand($quotes));
     
  16. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Gray_Wolf
    Вы вообще какой-то бред написали.
    получается скрипт будет слать месаги с уина Login и пароля Password
    я конечно попробовал,скрипт вообще не выполняется
     
  17. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Действительно сложный случай =)
     
  18. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Вот код который спокойно работает:
    PHP:
    <?
    $reflect 'Login;Password';
    $uinpass explode(";",$reflect);//тут в рандомной строке разделяю нум на уин и пас
    $uin $uinpass[0];
    $pass $uinpass[1];
    var_dump($uinpass);
    ?>
    Т.е. в части $pass = $uinpass[1]; НИКАКИХ проблем не возникает.
     
  19. MuXaJIbI4

    MuXaJIbI4 Member

    Joined:
    20 Nov 2008
    Messages:
    66
    Likes Received:
    7
    Reputations:
    0
    ты посмотри что тут array_rand($quotes) получается прежде чем парсить ... скорее всего в этой выбранной строке нет ; и поэтому при разбиении он создает только 1 элеент массива
     
  20. Deathdreams

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

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    $reflect = file('uins.txt');
    $kaif = array_rand($reflect);
    echo $kaif;
    Выдает число 29.