- 1
- 2
- 3
- 4
- 5
- 6
<?php
/* Посоветовали делать так, чтобы решить проблемы с выводом на страницу чисел. Всё зависло */
$x=0;
echo "Пожалуйста, подождите 1 минуту. Сейчас напечатаем";
while ($x++) echo $x."_";
?>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 3
+89
<?php
/* Посоветовали делать так, чтобы решить проблемы с выводом на страницу чисел. Всё зависло */
$x=0;
echo "Пожалуйста, подождите 1 минуту. Сейчас напечатаем";
while ($x++) echo $x."_";
?>
Хм... Что-то тут не так.
+157
<?php
$db = mysql_connect(localhost, "root", "Bdffjvfjkghj4hjtg4yu56y54gbyu");
mysql_select_db("test" ,$db);
/*
* Здесь что-то не так. Сервер зависает. Надо будет на форуме спросить
*/
$sql = mysql_query("SELECT * FROM users" ,$db);
mysql_close($db);
?>
+142
<?php
// страницы, содержимое которых надо получить
$urls = array('www.yandex.ru', 'www.google.ru', 'www.mail.ru', 'www.rambler.ru');
$rtasks = array(); // задачи чтения
$wtasks = array(); // задачи записи
$results = array(); // результаты
foreach ($urls as $url) {
// открываем отдельный сокет
$sh = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$sh) continue;
// таймаут для чтения
socket_set_option($sh, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 10, "usec" => 0));
// таймаут для записи
socket_set_option($sh, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 10, "usec" => 0));
// задаем неблокирующий режим сокетов
socket_set_nonblock($sh);
// определяем ip хоста
$ip = gethostbyname($url);
// соединяемся
socket_connect($sh, $ip, 80);
// добавляем в задачи для записи
$wtasks[$url] = $sh;
}
// продолжаем, пока есть задачи для записи или чтения
while ($wtasks || $rtasks) {
// массив для сокетов с возможностью чтения
$rtasks_ = $rtasks;
// массив для сокетов с возможностью записи
$wtasks_ = $wtasks;
// ждем результатов из сокетов
$n = socket_select($rtasks_, $wtasks_, $e=null, 10);
if ($n > 0) {
// сокеты, доступные для записи
foreach ($wtasks_ as $sh) {
// ищем урл страницы по дескриптору сокета в массиве задач записи
$url = array_search($sh, $wtasks);
// удаляем из задач записи
unset($wtasks[$url]);
// добавляем в задачи чтения
$rtasks[$url] = $sh;
// формируем http-заголовки
$headers = "GET / HTTP/1.0\r\n";
$headers .= "Host: ".$url."\r\n";
$headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 MRA 5.3 (build 02557) Firefox/3.0.6\r\n";
$headers .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
$headers .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
$headers .= "\r\n";
// записываем в сокет
if (socket_write($sh, $headers) === false) fclose($sh);
}
// сокеты, доступные для чтения
foreach ($rtasks_ as $sh) {
// ищем урл страницы по дескриптору сокета в массиве задач чтения
$url = array_search($sh, $rtasks);
if (!$url) continue;
// считываем результат из сокета
$result = '';
while ($r = socket_read($sh, 1024)) $result .= $r;
// закрываем сокет
socket_close($sh);
// удаляем из задач чтения
unset($rtasks[$url]);
// заносим html в массив результатов
$results[$url] = $result;
}
}
else {
break;
}
}
?>