Скрипты
PHP
» Вычисление диапазонов из произвольного списка дат
» Пробежаться по всем дням и часам недели
» Печатаем строчки :)
» Карточная страница
» Простейший RDF XML парсер
» PHP Uploader
HTML
» Контролируем favicon.ico
PHP Uploader
Простейший аплоадер. Удобен тем, что можно настраивать различные тайм-ауты коннекта и чтения, можно подставлять хедеры. При незначитальной доработке можно запоминать COOKIEs и использовать для страниц, требующих авторизацию :)
<?php
// $u - url function uploader($u) { $m = array ( 'host' => false, 'port' => 80, 'path' => '/', 'query' => '', ); if (false === ($u = parse_url($u)) || 0 != count(array_keys($u+= $m, false))) { return false; } $s = 'GET '; $s.= 0 == strlen($u['path']) ? '/' : $u['path']; $s.= 0 == strlen($u['query']) ? '' : '?'.$u['query']; $s.= ' HTTP/1.0'."\r\n"; $s.= 'Host: '.$u['host']."\r\n"; $s.= 'Accept: text/html, */*'."\r\n"; $s.= 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)'."\r\n"; $s.= 'Content-Type: text/plain; charset=windows-1252'."\r\n"; $s.= 'Connection: close'."\r\n"; $s.= "\r\n"; if (false === ($h = @fsockopen($u['host'], $u['port'], $n, $e, 60))) { return false; } elseif (false === @stream_set_timeout($h, 60) || false === @fputs($h, $s) || false === ($s = @fgets($h, 128)) || 3 != count($s = explode(' ', $s, 3)) || '200' !== $s[1]) { fclose($h); return false; } $r = array ( 0 => array(), 1 => '', ); while (0 != strlen($s = trim(fgets($h, 1024)))) { $s = explode(':', $s, 2); $r[0][$s[0]] = trim($s[1]); } while (!feof($h)) { $r[1].= fread($h, 4096); } fclose($h); return $r; }
print_r(uploader('http://stdmax.com/'));
?>
|