Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Q] По поводу выбора рандомной строки из файла (https://forum.antichat.xyz/showthread.php?t=111800)

Deathdreams 18.03.2009 18:57

[Q] По поводу выбора рандомной строки из файла
 
Собсна нужна помощь по выбору рандомной строки.
я делаю вот так
$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';)

Gifts 18.03.2009 19:45

Deathdreams
Эээ, вместо $quotes = 'uin.txt'; //тут полный путь стоит
Должно быть $quotes= file('uin.txt');

А вообще:
PHP код:

$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

Вот код который спокойно работает:
PHP код:

<?
$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

PHP код:

<?
$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 с вопросом разобрались


Время: 00:05