уж это то я знаю у меня всегда куки в рабочем состоянии а проблемма со скриптом лучше скажи какой те скрипт скинуть чтоб ты мне поверил что там что то нетак
Есть файл 1.txt с правами 666, надо скрипт который бы очищал содержимое этого файла. site.com/1.txt - файл с текстом site.com/clear.php - скрипт который бы очищал 1.txt Буду благодарен за помощь, с меня +.
Как в этом скрипте реализовать работу с 2 сокетами? PHP: <?php error_reporting(E_ALL); /* Позволить сценарию зависнуть вокруг ожидания подключений */ set_time_limit(0); /* Включить неявный вывод, так что мы видим то, что мы получаем * когда это приходит . */ ob_implicit_flush(); $address = '127.0.0.1'; $port = 10000; if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n"; } if (($ret = socket_bind($sock, $address, $port)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n"; } if (($ret = socket_listen($sock, 2)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n"; break; } /* Send instructions. */ $msg = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsock, $msg, strlen($msg)); do { if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "Client diconnected.\n"; break; } if (!$buf = trim($buf)) { continue; } if ($buf == 'quit') { break; } if ($buf == 'shutdown') { socket_close($msgsock); break 2; } $talkback = "PHP: You said '$buf'.\n"; socket_write($msgsock, $talkback, strlen($talkback)); echo "$buf\n"; } while (true); socket_close($msgsock); } while (true); socket_close($sock); ?> Попробовал нубским способом просто скопировать функции вот так: PHP: <?php error_reporting(E_ALL); /* Позволить сценарию зависнуть вокруг ожидания подключений */ set_time_limit(0); /* Включить неявный вывод, так что мы видим то, что мы получаем * когда это приходит . */ ob_implicit_flush(); $address = '127.0.0.1'; $port = 10000; $addressa = '127.0.0.1'; $porta = 10001; //-----------------------------------------------------------------------------Создаем сокет if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n"; } if (($socka = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket_create() failed: reason: " . socket_strerror($socka) . "\n"; } //-----------------------------------------------------------------------------Биндим сокет if (($ret = socket_bind($sock, $address, $port)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n"; } if (($reta = socket_bind($socka, $addressa, $porta)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror($reta) . "\n"; } //-----------------------------------------------------------------------------Слушаем сокет if (($ret = socket_listen($sock, 2)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n"; } if (($reta = socket_listen($socka, 2)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror($reta) . "\n"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n"; break; } /* Send instructions. */ $msg = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsock, $msg, strlen($msg)); if (($msgsocka = socket_accept($socka)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsocka) . "\n"; break; } /* Send instructions. */ $msga = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsocka, $msga, strlen($msga)); do { if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "Client diconnected.\n"; break; } if (false === ($bufa = @socket_read($msgsocka, 2048, PHP_NORMAL_READ))) { echo "Client diconnected.\n"; break; } if (!$buf = trim($buf)) { continue; } if ($buf == 'quit') { break; } if ($buf == 'shutdown') { socket_close($msgsock); break 2; } $talkback = "PHP: You said '$buf'.\n"; $talkbacka = "PHP: You said '$bufa'.\n"; socket_write($msgsock, $talkback, strlen($talkback)); socket_write($msgsocka, $talkbacka, strlen($talkbacka)); echo "$buf\n"; echo "$bufa\n"; } while (true); socket_close($msgsock); socket_close($msgsocka); } while (true); socket_close($sock); socket_close($socka); ?> Ну и естесственно работает или 1 сокет или 2, хотя коннекты принимает от 2х сразу
Было задумано с помошю прегмача выташить одну строчку прегмач был зделан 100% правельно но он нечего ненахадил потом я убрал условия прегмачя тоесть чтоб выводил в echo всё что есть на страницы а он мне выдовал всего лиш HTTP/1.1 200 OK в место длиного кода страницы! Помогите плззз.... Это код с прегмачям PHP: $get = curl_init("http://web.web"); curl_setopt($get, CURLOPT_RETURNTRANSFER, 1); curl_setopt($get, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)'); $headers = array ( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: ru,en-us;q=0.7,en;q=0.3', 'Accept-Encoding: gzip,deflate', 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7' ); curl_setopt($get, CURLOPT_REFERER, 'http://web.web'); curl_setopt($get, CURLOPT_HEADER, 1); curl_setopt($get , CURLOPT_PROXY, $proxy); curl_setopt($get, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($get, CURLOPT_COOKIEFILE, 'cookie.txt'); curl_setopt($get, CURLOPT_COOKIEJAR, 'cookie.txt'); $wp = curl_exec($get); curl_close($get); preg_match('#(.*)#', $wp, $idzz222); $idzzx22 = $idzz222[1]; echo "t idddd $idzzx22\n"; echo "Found on page [$id]\n"; А вот что выдоёт http headers... PHP: http://web.ru/video?id=khkY2kkAkkkk GET /video?id=khkY2kkAkkkk HTTP/1.1 Host: web.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://web.ru/new/video Cookie: webru=5600dfc1315ec9589b00b90768e949d3; __utma=161392741.1852195239.1258833076.1262886754.1262889524.29; __utmz=161392741.1258833076.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); webruuic=56ca04287e3aaa506c1ea1668b4edcf12b1b3cca29837b2e97dc28d061; __utmc=161392741; __utmb=161392741.1.10.1262889524 HTTP/1.x 200 OK X-Powered-By: PHP/5.2.8 Set-Cookie: webruuic=56ca04287e3aaa506c1ea1668b4edcf12b1b3cca29837b2e97dc28d061; expires=Tue, 09-Aug-2011 11:32:08 GMT; path=/; domain=.web.ru Content-Encoding: gzip Vary: Accept-Encoding Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Date: Thu, 07 Jan 2010 18:38:48 GMT Server: lighttpd/1.4.23
PHP: preg_match('#(.*)#', $wp, $idzz222); $idzzx22 = $idzz222[1]; echo "t idddd $idzzx22\n"; У меня мозг рушится когда я такое вижу, да еще и PHP: $headers = array ( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: ru,en-us;q=0.7,en;q=0.3', 'Accept-Encoding: gzip,deflate', 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7', 'Accept-Encoding: gzip,deflate', );
я здесь один ничего непонял????, в чем проблемма? в том что cURL составлен неверно ? кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? или регулярка- в которой я так и не понял что хотели выдернуть- насколько я понял (.*) -это может быть все что угодно , ты хоть напиши что ты пытаешся от скрипта добиться- судя по скрипту ты с сайта http://web.web пытаешся выдернуть первоепопавшееся слово (кстати для чего тут курл был заюзан- для меня загадка) P.S. Если тебе надо подключиться к внешнему сайту и дернуть из него что то то для подключения используй функцию file_get_contents ну а регулярку.......скажи что надо те дернуть оттуда и тебе помогут как то так это делаеться PHP: <?php $b =file_get_contents('тут адрес сайта из которого тебе надо дернуть строичку или что там у тя'); preg_match_all(здесь правильную регулярку $bt, $a); $arr = $a[0]; foreach($arr as $value) { echo "$value <br />"; } ?> все- весь код
Дану брось это бред с file get kontents с курлом проше ... а курл составлен правелно поверь... кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? а можэт я просто нехачю чтоб вы знали веб для которого эт всё ... А что дёрнут это тут необязателно поверь ну есле так надо держы PHP: preg_match('#t_id=([0-9]*)#', $wp, $idzz22s); $idzzx2s = $idzz22s[1]; echo "t_id = $idzzx2s\n"; И вобше ты всё читал чё я написал ? жош А проблема в том что он находен HTTP/1.1 200 OK в web.web в место кода страницы... тк можэт она переносится кудата или чё я дажэ незнаю но когда заходеш на web.web чэрез мозилу сылка неменяется такойжэ и остоётся Помогите плз ктонибудь
если тебе нужен Курл для подключения к вебстранице и ты говориш file_get_contents-бред, то я умываю руки..... P.S Или я правдо что то непонял??????
Kusto, солидарен с твоим мнением. KraFT, зачем тебе нужен именно Curl, если можно сделать проще - file_get_conents?
PHP: $get = curl_init("http://web.web"); ну так это и есть можно сказать file get kontents наверное чтото непонел ну в предведушем мсг я всё подробно разсказал перечитай думаю поймёш
то что у меня весь скрипт на курле... да и в принцыпе без разницы так как проблема не в том... Так как в мозиле делаеш ctrl+u там есть код а когда с $get = curl_init("http://web.web"); то там пустой код в нём только это HTTP/1.1 200 OK с file_get_conents будет тожэ самое...
причем здесь весь скрипт))), ладно тогда почитай значение этой функции curl_close($get); т е Завершает сеанс CURL и освобождает ресурсы. Дескриптор get ( в твоем случае) также уничтожается
лан хочеш так- делай так только например функция curl_exec($get); выведет страницу в браузер а ты используеш CURLOPT_RETURNTRANSFER с функцией curl_setopt() которая возвращает результат обработки (в твоем случае это 200 ОК)
Как сделать так чтобы при заходе на страницу записывалось число заходов в текстовый документ? p.s ссори за такой тупой вопрос просто я php вообще не знаю
PHP: ?php $ip = $_SERVER["REMOTE_ADDR"]; // IP $Data = date("d-m-y H:i:s", time()); // Дата и время $Browser = getenv("HTTP_USER_AGENT"); $Port = getenv("REMOTE_PORT"); $Connect = $_SERVER['HTTP_CONNECTION']; $Host = gethostbyaddr(getenv("REMOTE_ADDR")); $text = "[$Data] Browser:[$Browser] Port:[$Port] Connect:[$Connect] Host:[$Host] IP:$ip "; $filelog = fopen("base.php","a+"); //открываем файл базы fwrite($filelog,"\n $text \n"); //записываем всё fclose($filelog); //закрываем ?> как то так