из мпака 0.91 PHP: function detect_browser($HTTP_USER_AGENT) { // Браузер и его версия if (eregi("(opera) ([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match) || eregi("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match)) { $browser[name] = "Opera"; $browser[version] = $match[2]; } elseif (eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Konqueror"; $browser[version] = $match[2]; } elseif (eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Lynx"; $browser[version] = $match[2]; } elseif (eregi("(links) \(([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Links"; $browser[version] = $match[2]; } elseif (eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "MSIE"; $browser[version] = $match[2]; } elseif (eregi("(netscape6)/(6.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Netscape"; $browser[version] = $match[2]; } elseif (eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Netscape(mozilla)"; $browser[version] = $match[2]; if (eregi("(firefox)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Firefox"; $browser[version] = $match[2];} } else { $browser[name] = "Unknown"; $browser[version] = "Unknown"; } // OS if (eregi("linux", $HTTP_USER_AGENT)) $browser[os] = "Linux"; elseif (eregi("win32", $HTTP_USER_AGENT)) $browser[os] = "Windows"; elseif ((eregi("(win)([0-9]{2})", $HTTP_USER_AGENT, $match)) || (eregi("(windows) ([0-9]{2})", $HTTP_USER_AGENT, $match))) $browser[os] = "Windows ".$match[2]; elseif (eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "Windows NT ".$match[2]; elseif (eregi("(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "Windows NT ".$match[3]; elseif (eregi("mac", $HTTP_USER_AGENT)) $browser[os] = "Macintosh"; elseif (eregi("freebsd", $HTTP_USER_AGENT)) $browser[os] = "FreeBSD"; else $browser[os] = "Unknown"; if (eregi("(sv1)", $HTTP_USER_AGENT)) $browser[os] = "Windows NT 5.1 SP2"; return $browser; }
Здравствуйте. Есть web-сервер Есть сервер базы данных oracle на соседней машине Как можно организовать подключение к базе?
Как заархивировать файл, используя системный вызов, так как параметр max_execution_time = 30 не позволяет отработать скрипту до конца. (его поменять нельзя) PHP: $handle_in = fopen("file.txt", "r"); $handle_out = gzopen("file.gz", "w") while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл { $buffer = fgets($handle_in); gzwrite($handle_out,$buffer); } fclose($handle_in); // закрываем файл (источник) gzclose ($handle_out); // закрываем архивный файл (приёмник) - если файл источник большой - то скрипт не успевает отработать до конца файла. PS Linux 2.6.9-55.0.12
Code: $ wc -lc file.txt 13713242 154744102 file.txt $ cat php gzopen.php <?php $handle_in = fopen("file.txt", "r"); $handle_out = gzopen("file.gz", "w"); while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл { $buffer = fgets($handle_in); gzwrite($handle_out,$buffer); } fclose($handle_in); // закрываем файл (источник) gzclose ($handle_out); // закрываем архивный файл (приёмник) ?> $ time php gzopen.php real 1m27.121s user 1m22.449s sys 0m1.588s $ cat gzopen2.php <?php $max_size = memory_get_usage () * 0.8; $handle_in = fopen("file.txt", "r"); $handle_out = gzopen("file.gz", "w"); while (!feof($handle_in)) // пока не достигнут конец файла архивируем файл { $buffer = fread ($handle_in, $max_size); gzwrite($handle_out,$buffer); } fclose($handle_in); // закрываем файл (источник) gzclose ($handle_out); // закрываем архивный файл (приёмник) ?> $ time php gzopen2.php real 0m36.477s user 0m34.346s sys 0m1.016s $
Хочу накрутить голосование Code: POST http://ххххх.ru/ххх/хх/ххх/vote.php HTTP/1.0 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* Accept-Language: ru Content-Type: application/x-www-form-urlencoded Host: хххххххх.ru Content-Length: 16 Pragma: no-cache Connection: Keep-Alive form%5Bgirl%5D=1 это запрос отправляемый моим браузером при голосовании.... как мне написать php код..... так? Code: <? if ( ( $io = fsockopen( "www.ххххх.ru", 80, $errno, $errstr, 5 ) ) !== false ) { $send = "POST http://ххххх.ru/хххх/ххх/ххх/vote.php HTTP/1.0\r\n"; $send .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; $send .= "Accept-Language: ru\r\n"; $send .= "Content-Type: application/x-www-form-urlencoded\r\n"; $send .= "Host: ххххх.ru\r\n"; $send .= "Content-Length: 16\r\n"; $send .= "Pragma: no-cache\r\n"; $send .= "Connection: Keep-Alive\r\n\r\n"; $send .= "form%5Bgirl%5D=1"; fputs ( $io, $send ); } else echo "НЕ могу подключится"; ?> вроди бы все правильно((( пишет ошибку Code: Warning: fsockopen() [function.fsockopen]: unable to connect to www.ххххх.ru:80 (Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. ) in Z:\home\localhost\www\vike_flood.php on line 2 НЕ могу подключится Из за чего может быть моя ошибка?
2!{ra!{e/\/ Там же написано: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
5вообще маловато будет =\ Вообще я бы сделал типо того: PHP: <?php $io = fsockopen("ххххх.ru", 80, $errno, $errstr, 30); if ($io) { $send = "POST http://ххххх.ru/хххх/ххх/ххх/vote.php HTTP/1.0\r\n"; $send .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; $send .= "Accept-Language: ru\r\n"; $send .= "Content-Type: application/x-www-form-urlencoded\r\n"; $send .= "Host: ххххх.ru\r\n"; $send .= "Content-Length: 16\r\n"; $send .= "Pragma: no-cache\r\n"; $send .= "Connection: Keep-Alive\r\n\r\n"; $send .= "form%5Bgirl%5D=1"; fwrite($io, $send); while (!feof($io)) { $line = fgets($io, 1024); echo $line.'<br/>'; } fclose($io); } else { echo "НЕ могу подключится"; } ?> но для накрутки имхо лучше с проксями. Или Номерадин щас скажет что я опять не в теме?))))
Приветствую Всех! Извините, я пока ламер в вопросах веб-програмирования - и хотел бы поинтересоваться: 1_Хочу создать свой форум на phpbb 3 - движок уже есть, хост есть, там фтп-ка, как туда залить!? File-zilla подойдет!? Как там настроить права админа - т.е. сначала надо в движке все редактировать или же после того как залью - можно будет с ним работать!? как правильно устанавливать скрипты!? Опять же через фтп заливку или там будет доступно!? 2_А если я хочу создать сайт на другом хостинге, там тоже фтп-заливка - что для этого нужно!? Какой движок использовать!? Хм... вроде пока все.
1. Настраиваешь ftp клиент.. пишешь, там логин и пароль... заливаешь всю папку со скриптами... потом идёшь.... на что-то типа instal.php!! указываешь там данные базы, полученные от хостера, всё admin.php! Напиши хостинг, что-ли... narod.ru? 2. Движок для сайта - тут где то есть обзор на форуме платных и бесплатных кмс... выбирай любую!!
насчет хостинга скорее всего будет locallhost если БД на том же хосте находится. по поводу FTP лучше все-таки использовать cuteFTP и последний,чисто коммерческий совет: размещать форум где нибудь на yourdomain.ru/forum или forum.yourdomain.ru т.е. в графе "путь_к_форуму" обозначать не главную страницу, а не просто yourdomain.ru и самое главное на файл config.php установить права доступа (chmod) 444 или 676
Всем привет! Хотелось бы увидеть мнения по навигации для заметок из базы желательно простой как три рубля. (и с комментами по ходу кода) Заметок из базы выводится на страницу по 3 штуки . вид примерно хотелось бы видеть такой: пред 1 2 3 последняя
Постраничная навигация на файлах Автор: IT-студия SoftTime (softtime.ru) Скрипт предназначен отображения определённого числа позиций из файла и генерации ссылок на следующие позиции. Пусть имеется файл text.txt следующего формата. Файл данных text.txt Тогда скрипт, выводящий по три позиции на странице может выглядеть так, как это представлено ниже Постраничная навигация Code: <?php // Имя файла $filename = "text.txt"; // Число позиций на странице $pnumber = 3; // Открываем файл для чтения $bufer = file_get_contents($filename); // Находим все строки при помощи регулярного выражения preg_match_all("#([\d]+) ([^\n]+)(\n|$)#U", $bufer, $out, PREG_PATTERN_ORDER); // Формируем промежуточный массив for($i = 0; $i < count($out[1]); $i++) { $temp[] = trim($out[2][$i]); } // Проверяем передан ли номер текущей страницы if(isset($_GET['page'])) $page = $_GET['page']; else $page = 1; // Число страниц $total = count($temp); $number = (int)($total/$pnumber); if((float)($total/$pnumber) - $number != 0) $number++; $start = (($page - 1)*$pnumber + 1); $end = $page*$pnumber + 1; if($end > $total) $end = $total; // Выводим содержимое страниц for($i = $start; $i < $end; $i++) { echo $temp[$i]."<br>"; } // Постраничная навигация for($i = 1; $i <= $number; $i++) { // Если это произвольная страница if($i != $number) { if($page == $i) { echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] "; } else { echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[". (($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> "; } } // Если это последняя страница заменяем последнюю цифру // максимальным числом позиций в массиве $temp else { if($page == $i) { echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] "; } else { echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[". (($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> "; } } } ?> _http://php.su/articles/?cat=examples&page=057
всем привет. возникла немного не понятная проблема. скрипт выполняет некоторые действия и посылает запросы POST/GET. POST работает на УРА! а вот GET творит что-то не понятное, при запуске выполняет все действия, но думает минимум 10-20 секунд. вот функция POST запроса PHP: function post($address,$request,$cookies,$referer) { global $host,$port,$user_agent,$login,$pass; $hash = ""; $fsite = fsockopen($host,$port,$error_number,$error_description,10); $ffile = fopen("hash","w+"); if ($fsite) { stream_set_blocking($fsite,FALSE); fputs($fsite,"POST $address HTTP/1.1\r\n"); fputs($fsite,"Accept-Language: ru\r\n"); fputs($fsite,"Content-Type: application/x-www-form-urlencoded\r\n"); fputs($fsite,"Host: $host\r\n"); fputs($fsite,"Referer: $referer\r\n"); fputs($fsite,"Cookie: $cookies\r\n"); fputs($fsite,"User-Agent: $user_agent\r\n"); fputs($fsite,"Proxy-Connection: Keep-Alive\r\n"); fputs($fsite,"Content-Length: ".strlen($request)."\r\n"); fputs($fsite,"\r\n"); fputs($fsite,"$request\r\n"); fputs($fsite,"\r\n"); $i = 0; while (!feof($fsite)) { $hash_test = fgets($fsite, 1024); fputs($ffile,$hash_test); $i++; } fclose($fsite); return 1; } } а вот GET функция PHP: function get($address,$cookies,$referer) { global $host,$port,$user_agent,$login,$pass; $hash = ""; $fsite = fsockopen($host,$port,$error_number,$error_description,10); $ffile = fopen("hash","w+"); if ($fsite) { stream_set_blocking($fsite,FALSE); fputs($fsite,"GET $address HTTP/1.1\r\n"); fputs($fsite,"Accept-Language: ru\r\n"); fputs($fsite,"Content-Type: application/x-www-form-urlencoded\r\n"); fputs($fsite,"Host: $host\r\n"); fputs($fsite,"Referer: $referer\r\n"); fputs($fsite,"Cookie: $cookies\r\n"); fputs($fsite,"User-Agent: $user_agent\r\n"); fputs($fsite,"Proxy-Connection: Keep-Alive\r\n"); fputs($fsite,"\r\n"); $i = 0; while (!feof($fsite)) { $hash_test = fgets($fsite, 1024); fputs($ffile,$hash_test); $i++; } fclose($fsite); return 1; } } причем когда смотрю по времени создания hash файла я понимаю что скрипт уже все сделал...но при этом висит..и в ответ либо выдает нужный мне ерзультат но с большим опозданием, либо вообще ничего. как будет-то скрипт прирывается по функции exit(); хотя данной функции вообще ни в одном скрипте нету.