Просмотр полной версии : [Q] По поводу выбора рандомной строки из файла
Deathdreams
18.03.2009, 18:57
Собсна нужна помощь по выбору рандомной строки.
я делаю вот так
$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.
Вообщем очень нужна ваша помощь.
Gray_Wolf
18.03.2009, 19:07
Выведи содержимое $reflect и $uinpass.
Deathdreams
18.03.2009, 19:09
не в этом дело.
я как только код не изменял,всё время пишет ошибка в строке $pass = $uinpass[1];
неверный индекс 1.
Gray_Wolf
18.03.2009, 19:12
Неверный индекс 1 значит что в массиве нет такого элемента.
Соотвественно нужно смотреть содержимое $reflect, и результат функции explode()
Deathdreams
18.03.2009, 19:18
результат выводится.я тестил только,чтобы выводилась рандомная строка,ещё не разделенная.
Всё выводится.
Что именно не понятно?
Gray_Wolf
18.03.2009, 19:22
Не понятно в чём собственно проблема...
1. Вы не можете получить рандомную строку.
2. Вы получаете рандомную строку, но в $pass = $uinpass[1]; у вас выскакивает ошибка.
Deathdreams
18.03.2009, 19:30
Вот именно.Рандомная строка вытаскивается.
При разбиении на уин и пасс,у пасс он пишет,что ошибочный индекс 1 указан!
Pashkela
18.03.2009, 19:35
Сделай как здесь и не парь мосг:
https://forum.antichat.ru/thread111657.html
Gray_Wolf
18.03.2009, 19:37
Ну раз уж вы не хотите светить формат содержимого в $reflect, то попробуйте заменить строку:
$reflect = $quotes[$quote];
На
$reflect = 'Login;password';
Если будет выскакивать ошибка напишите результат функции
var_dump($uinpass);
Deathdreams
18.03.2009, 19:42
Pashkela
мне нужен,что рандомно отправителя сделать.
Из списка асек.
Deathdreams
18.03.2009, 19:44
2 Gray_Wolf
Я же вроде раскрыл содержимое переменной.
$reflect = $quotes[$quote];
где quotes и quote результат действия $quote = rand(0, sizeof($quotes)-1);
от файла uin.txt в переменной $quotes ($quotes = 'uin.txt';)
Deathdreams
Эээ, вместо $quotes = 'uin.txt'; //тут полный путь стоит
Должно быть $quotes= file('uin.txt');
А вообще:
$quotes = file('uin.txt');
list($uin,$pass)=explode(';',array_rand($quotes));
Deathdreams
18.03.2009, 19:48
Gifts
у меня так и стоит.
$source = 'uin.txt';
$file_s = file($source);
я не написал это просто.поставил самое главное
Gray_Wolf
18.03.2009, 19:49
2Gifts
Он же вроде сказал что рандомная строка верно выбирается...
2Deathdreams
ну а если подставить то что я сказал, какой результат?
Deathdreams
18.03.2009, 19:52
Gifts
Notice: Undefined offset: 1 in /var/www/vhosts/****/httpdocs/****/index.php on line 123
указывает на строку list($uin,$pass) = explode(';',array_rand($quotes));
Deathdreams
18.03.2009, 19:56
Gray_Wolf
Вы вообще какой-то бред написали.
получается скрипт будет слать месаги с уина Login и пароля Password
я конечно попробовал,скрипт вообще не выполняется
Deathdreams
18.03.2009, 19:57
Действительно сложный случай =)
Gray_Wolf
18.03.2009, 19:59
Вот код который спокойно работает:
<?
$reflect = 'Login;Password';
$uinpass = explode(";",$reflect);//тут в рандомной строке разделяю нум на уин и пас
$uin = $uinpass[0];
$pass = $uinpass[1];
var_dump($uinpass);
?>
Т.е. в части $pass = $uinpass[1]; НИКАКИХ проблем не возникает.
MuXaJIbI4
18.03.2009, 19:59
ты посмотри что тут array_rand($quotes) получается прежде чем парсить ... скорее всего в этой выбранной строке нет ; и поэтому при разбиении он создает только 1 элеент массива
Deathdreams
18.03.2009, 20:08
$reflect = file('uins.txt');
$kaif = array_rand($reflect);
echo $kaif;
Выдает число 29.
Deathdreams
18.03.2009, 20:09
2 Gray_Wolf
Я сделал как ты ток с уинами.
нихрена(
Gray_Wolf
18.03.2009, 20:15
это значит что у тебя в $quotes[$quote] какаято хрень а не uin;pass
<?
$reflect = '1111;sdas';
$uinpass = explode(";",$reflect);//тут в рандомной строке разделяю нум на уин и пас
$uin = $uinpass[0];
$pass = $uinpass[1];
var_dump($uinpass);
?>
нормально работает
Deathdreams
18.03.2009, 20:16
специально ща все заново сделаю.
Deathdreams
18.03.2009, 20:21
$reflect = 'Login;Password';
$uinpass = explode(";",$reflect);
$uin = $uinpass[0];
$pass = $uinpass[1];
echo $uin;
echo $pass;
код
вот что выводит: LoginPassword
Gray_Wolf
18.03.2009, 20:25
вот что выводит: LoginPassword
Здесь то всё правильно. (тыж между ними <br> не вставлял)
Я говорю что в $quotes[$quote] у тебя что-то левое, поэтому скрипт и не пашет.
Deathdreams
18.03.2009, 20:32
$reflect = file('uins.txt');
$uinpass = explode(";",$reflect);
$uin = $uinpass[0];
$pass = $uinpass[1];
echo $uin;
echo '<br>';
echo $pass;
Выводит 2 ошибки
Notice: Array to string conversion in /var/www/vhosts/****/httpdocs/****/index.php on line 123
Notice: Undefined offset: 1 in /var/www/vhosts/****httpdocs/****/index.php on line 125
А вместо рандомной строки Array
на строке 123 нах-ся: $uinpass = explode(";",$reflect);
на 125: $pass = $uinpass[1];
Gray_Wolf
18.03.2009, 20:38
Notice: Array to string conversion in /var/www/vhosts/****/httpdocs/****/index.php on line 123
Ну дак этож массив, а explode нужна строка.
Вторая ошибка возникает в результате первой.
Deathdreams
18.03.2009, 20:39
Gray_Wolf
скинь плиз в личку аську,я стукну.
это не дело)
Deathdreams
18.03.2009, 20:40
я понял,что вторая в результате первой)))
Deathdreams
18.03.2009, 21:03
все del с вопросом разобрались
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot