если честно- я ничего непонял область применения что хочеш, опиши подробнее- вернусь- попробую помоч если пойму что требуеться и прекращайте пользоваться count намного проще организовываеться цикл до тех пор пока в файле невстретиться конец файла ну типа такого while(!feof($k))
есть текстовик со следующим содержимым: 1 2 3 4 5 6 ..etc мне нужно чтоб заходил в текстовик выдергивал первую строчку(то есть цифру 1) и заходил по ссылке, допустим ttp://vkontakte.ru/id1 , потом брал вторую строчку(цифру 2), заходил на ttp://vkontakte.ru/id2, потом заходил ttp://vkontakte.ru/id3 и здесь цикл заканичвал свою работу и начинает работать другой цикл, ну после того как вновь вернемся к нашему циклу он выполнил ту же операцию, но уже начиная с четвертой строчкой(цифра 4), то есть совершил по очереди переходы: ttp://vkontakte.ru/id4 ttp://vkontakte.ru/id5 ttp://vkontakte.ru/id6 и закончил свою работу.
PHP: <?php $port = 10001; // create a streaming socket, of type TCP/IP $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // set the option to reuse the port socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1); // "bind" the socket to the address to "localhost", on port $port // so this means that all connections on this port are now our resposibility to send/recv data, disconnect, etc.. socket_bind($sock, 0, $port); // start listen for connections socket_listen($sock); // create a list of all the clients that will be connected to us.. // add the listening socket to this list $clients = array($sock); while (true) { // create a copy, so $clients doesn't get modified by socket_select() $read = $clients; // get a list of all the clients that have data to be read from // if there are no clients with data, go to next iteration if (socket_select($read, $write = NULL, $except = NULL, 0) < 1) continue; // check if there is a client trying to connect if (in_array($sock, $read)) { // accept the client, and add him to the $clients array $clients[] = $newsock = socket_accept($sock); // send the client a welcome message socket_write($newsock, "Hello, this is welcome message\n". "There are ".(count($clients) - 1)." client(s) connected to the server\n"); socket_getpeername($newsock, $ip); echo "New client connected: {$ip}\n"; // remove the listening socket from the clients-with-data array $key = array_search($sock, $read); unset($read[$key]); } // loop through all the clients that have data to read from foreach ($read as $read_sock) { // read until newline or 1024 bytes // socket_read while show errors when the client is disconnected, so silence the error messages $data = @socket_read($read_sock, 1024, PHP_NORMAL_READ); // check if the client is disconnected if ($data === false) { // remove client for $clients array $key = array_search($read_sock, $clients); unset($clients[$key]); echo "client disconnected.\n"; // continue to the next client to read from, if any continue; } // trim off the trailing/beginning white spaces $data = trim($data); // check if there is any data after trimming off the spaces if (!empty($data)) { // send this to all the clients in the $clients array (except the first one, which is a listening socket) foreach ($clients as $send_sock) { // if its the listening sock or the client that we got the message from, go to the next one in the list if ($send_sock == $sock || $send_sock == $read_sock){ //continue; if ($data == 'shutdown') { socket_write($send_sock, "Ololo"."\n"); } } // write the message to the client -- add a newline character to the end of the message //socket_write($send_sock, $data."\n"); //echo($data."\n"); } // end of broadcast foreach echo($data."\n"); // if ($data == 'shutdown') { // socket_write($send_sock, "Ololo"."\n"); //} } } // end of reading foreach } // close the listening socket socket_close($sock); ?> Почему если я с какого либо клиента отсылаю shutdown, то пишет: Code: Warning: socket_write(): unable to write to socket [0]: ╟ряЁюё эр юЄяЁртъє шыш я юыєўхэшх фрээ√ї (when sending on a datagram socket using a sendto call) no addr ess was supplied. in D:\xampp\htdocs\test2.php on line 77 Однако сообщение Ololo приходит. Мне надо чтобы я с 1 клиента отсылал например сообщение shutdown, а скрипт мне в ответ слал Ololo, т.е. чтобы Ololo приходило тому клиенту кто отсылает скрипту shutdown и только ему. P.S. выручайте новичка, с меня + Если надо, то вот оригинальный скрипт: PHP: <?php $port = 9050; // create a streaming socket, of type TCP/IP $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // set the option to reuse the port socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1); // "bind" the socket to the address to "localhost", on port $port // so this means that all connections on this port are now our resposibility to send/recv data, disconnect, etc.. socket_bind($sock, 0, $port); // start listen for connections socket_listen($sock); // create a list of all the clients that will be connected to us.. // add the listening socket to this list $clients = array($sock); while (true) { // create a copy, so $clients doesn't get modified by socket_select() $read = $clients; // get a list of all the clients that have data to be read from // if there are no clients with data, go to next iteration if (socket_select($read, $write = NULL, $except = NULL, 0) < 1) continue; // check if there is a client trying to connect if (in_array($sock, $read)) { // accept the client, and add him to the $clients array $clients[] = $newsock = socket_accept($sock); // send the client a welcome message socket_write($newsock, "no noobs, but ill make an exception :)\n". "There are ".(count($clients) - 1)." client(s) connected to the server\n"); socket_getpeername($newsock, $ip); echo "New client connected: {$ip}\n"; // remove the listening socket from the clients-with-data array $key = array_search($sock, $read); unset($read[$key]); } // loop through all the clients that have data to read from foreach ($read as $read_sock) { // read until newline or 1024 bytes // socket_read while show errors when the client is disconnected, so silence the error messages $data = @socket_read($read_sock, 1024, PHP_NORMAL_READ); // check if the client is disconnected if ($data === false) { // remove client for $clients array $key = array_search($read_sock, $clients); unset($clients[$key]); echo "client disconnected.\n"; // continue to the next client to read from, if any continue; } // trim off the trailing/beginning white spaces $data = trim($data); // check if there is any data after trimming off the spaces if (!empty($data)) { // send this to all the clients in the $clients array (except the first one, which is a listening socket) foreach ($clients as $send_sock) { // if its the listening sock or the client that we got the message from, go to the next one in the list if ($send_sock == $sock || $send_sock == $read_sock) continue; // write the message to the client -- add a newline character to the end of the message socket_write($send_sock, $data."\n"); } // end of broadcast foreach } } // end of reading foreach } // close the listening socket socket_close($sock); ?>
Maxxxtri23 Все ж подписано и каждая строчка прокомментирована >.< Проблема тут: if ($send_sock == $sock || $send_sock == $read_sock) Скрипт просматривает все сокеты из массива и ищет два: сокет, который принимает новых пользователей и собственно отправителя текущего сообщения. Условия следует разделить - сокет для принятия всегда пропускать. А отправителю слать соответствующее сообщение PHP: if ($send_sock = $sock) continue; if ($send_sock = $read_sock) socket_write($send_sock, "olololo\n"); Kusto Накладные расходы (памяти/процессора) на подсчет количества элементов в массиве - меньше (естественно, если не загонять подсчет в условие окончания цикла), чем использование foreach admink1 Либо вы несете чушь и сами не понимаете чего хотите, либо не формулируете до конца задачу. Зачем использовать вложенные циклы, если можно последовательно считывать и обращаться к соответствующим страницам? В чем принципиальная важность второго цикла?
так в чем проблемма? то-же самое практически PHP: <?php $k = file('name.txt'); $a=array_chunk($k,3); foreach ($a as $c => $d){ echo " </br>цикл работает $c -ый раз : </br></br>"; foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> "; ?> вот результат его работы цикл работает 0 -ый раз : суперссылкавконтакта и id= 25 суперссылкавконтакта и id=456 суперссылкавконтакта и id=789 цикл работает 1 -ый раз : суперссылкавконтакта и id=425 суперссылкавконтакта и id=456 суперссылкавконтакта и id=7851 цикл работает 2 -ый раз : суперссылкавконтакта и id=54698 суперссылкавконтакта и id=52145 суперссылкавконтакта и id=25469 цикл работает 3 -ый раз : суперссылкавконтакта и id=58742 суперссылкавконтакта и id=87542 суперссылкавконтакта и id=12458 цикл работает 4 -ый раз : суперссылкавконтакта и id=12458
полная задача такова: 1. нужно выдернуть акк из файла. 2. залогиниться. 3. выдернуть из другого текстовика три первые ссылки(1,2,3 строчки) 4. по очереди пройтись по этим трем ссылкам и написать текст. 5. поменять акк 6. залогинится 7. и вновь выдернть из текстовика три последующие ссылки(4,5,6 строчки) и написать текст. //сделал все , кроме 7ого пункта, получается что всегда по всему файлу проходится, а как хотелось бы не получается
PHP: <object width="425" height="344"> <param name="movie" value="http://www.youtube.com/v/1bOqXOTYeh8&hl=ru_RU&fs=1&rel=0"></param> <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param> <embed src="http://www.youtube.com/v/1bOqXOTYeh8&hl=ru_RU&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed> </object> а вариант не перегружая страницу видео из ютуб менять при нажатие на ссылку скриптом ява или пхп , какой ни будь функцией, на пример: <a href="domen/video/" onClick="video(url);"> ссылка</a> фотки могу так менять , а вот с видео проблемка
сразу говорю этот скрипт я не проверял- но в таком виде должно пахать (как я понял у тя два текста в одном логины и пароли в другом айди) PHP: <?php $k = file('id.txt'); $x= file('name.txt'); $a=array_chunk($k,3); foreach ($a as $c => $d){ echo " </br> $x[$c] дернули первый акк и залогинились</br></br>"; foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> "; } ?> там где строчка PHP: echo " </br> $x[$c] дернули первый акк и залогинились</br></br>"; можеш вставлять людые действия (логиниться, и т д) а в этой строчке PHP: foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> "; отправляй сообщения и т д) И дай ответ работает или нет? (и пускай тебя foreach несмущает- внутри него тоже можно производить любые операции как в любом- другом цикле) Я непойму что тебя смущало в предыдущих вариантах- практически они все были рабочие просто я по мере твоих обьяснений добавлял все новое и новое, лично я как бы сделал - составил функцию и внутри циклов бы ее вызывал, я вообще невижу никаких проблемм (непойму что тебя смущает в предложенныхвариантах)
не я так пробовал уже если имеется текстовик со следующим содержанием: Code: 1 2 3 4 5 6 .. что он делает, 1) он логинится все норм, 2) потом выдергивает 3 строчку, заходит по ссылки, потом выдергивает 6 строчку, 9, 12 и так далее, до конца файла. 3) до кончца файла доходит, меняет акк, потом с другим акком проходит, тоже самое делает, то есть проходится по 3 строчке, 6, 9, и так пока конец файла не найдет. а нужно, чтоб первый акк прошелся по первым трем ссылкам, второй акк по 4-6 ссылке, и так далее
как он может использовать один ак если PHP: $x[$c] вызывает из списка совершенно другой акк (с которым и проходит по 3 ссылкам)- 3 ссылки прошло- дергает другой акк и т д (или те не такое надо?) вот именно= первый акк проходит по первым трем- второй по 4,5,6 (см скрипт выше)
не, я не говорил, что он 1 акк использует. акки норм меняются, по очереди. а вот переход по ссылкам идет так - 3строчку дергает, 6, 9
все работает я там просто "{"пропустил вот скрипт(на денвере проверил) PHP: <?php $k = file('id.txt'); $x= file('name.txt'); $a=array_chunk($k,3); foreach ($a as $c => $d){ echo " </br> $x[$c] дернули первый акк и залогинились</br></br>"; foreach ($d as $f) echo " суперссылкавконтакта и id=$f </br> "; } ?> а вот результат его работы Vasya дернули первый акк и залогинились суперссылкавконтакта и id=1 суперссылкавконтакта и id=2 суперссылкавконтакта и id=3 petya дернули первый акк и залогинились суперссылкавконтакта и id=4 суперссылкавконтакта и id=5 суперссылкавконтакта и id=6 misha дернули первый акк и залогинились суперссылкавконтакта и id=7 суперссылкавконтакта и id=8 суперссылкавконтакта и id=9 grisha дернули первый акк и залогинились суперссылкавконтакта и id=10 суперссылкавконтакта и id=11 суперссылкавконтакта и id=12 как видеш проходиться каждый акк и по всему списку
Code: а вот результат его работы Vasya дернули первый акк и залогинились суперссылкавконтакта и id=1 суперссылкавконтакта и id=2 суперссылкавконтакта и id=3 petya дернули первый акк и залогинились суперссылкавконтакта и id=4 суперссылкавконтакта и id=5 суперссылкавконтакта и id=6 misha дернули первый акк и залогинились суперссылкавконтакта и id=7 суперссылкавконтакта и id=8 суперссылкавконтакта и id=9 grisha дернули первый акк и залогинились суперссылкавконтакта и id=10 суперссылкавконтакта и id=11 суперссылкавконтакта и id=12 но почему то он переходит только по 3им ссылкам, а именно: суперссылкавконтакта и id=3 суперссылкавконтакта и id=6 суперссылкавконтакта и id=9 суперссылкавконтакта и id=12 а это может быть связано с тем, что суперссылкивконтакта сразу все вместе выдергиваются и вставляются и из-за этого он переходит только по последней, третей ссылке в блоке?
admink1 Потому что руки крюки. Русским языком было сказано - заменить echo " суперссылкавконтакта и id=$f </br> "; на свою функцию. Или следует использовать операторные скобки: PHP: foreach ($d as $f) { // <<<---- фигурная скобка, сразу после foreach echo " суперссылкавконтакта и id=$f </br> "; echo 'еще одна команда'; echo 'еще другая команда'; } // <<<---- закрывается Вы вообще мануал открывали? Или уже какером себя считаете и вам не надо? Kusto а вам надо по рукам линейкой себе бить. Вы бы еще через обфускатор переменные пропустили, чтобы человек еще лучше понял, что означают эти однобуквенные переменные
Не знаю куда обратится ! Но проблема моя состоит в том что после установки Outpost я не могу открывать множество ссылок в программе Опера ! Выдается вот такая Ошибка ! Невозможно подключиться к прокси-серверу. Доступ запрещён Вы попытались получить доступ к адресу http://forum.antichat.ru/, который сейчас недоступен. Убедитесь, что веб-адрес (URL) введен правильно, и попытайтесь перезагрузить страницу. Убедитесь, что соединение с Интернет активно, и проверьте, работают ли другие приложения, использующие это соединение. что делать подскажите ! О_о
Подскажите, как можно 4-5 изображений соединить в одно? Есть капча, которая состоит из 5 отдельных картинок. Вид урла Code: &p=1 &p=2 &p=3 &p=4 &p=5 Отсылать на распознование по одной картинке нет смысла, а как ещё реализовать не представляю.
обрати внимание на эту страницу и сравни со своим курлом (там два варианта для яндекса) походу дела в курле недостаточно данных- вот и ждет ответ и время ожидания заканчиваеться (так вроде в ошибке написанно у тебя) http://forum.antichat.ru/threadnav40896-1422-10.html
значит надо снифать что запрашивает сервак (прописывает ли кукисы, инфо по браузеру, рефер откуда идет и т д) и из этих данных уже плясать (я даже непредставляю как можно что то отправить на сайт если он не запрашивает у тебя этих данных)