Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $url = parse_url($_REQUEST['u']);
- $error = '';
- if ($url['scheme'] != 'http') {
- $error = 'Не указан либо неправильный протокол';
- }
- else {
- $fh = fsockopen($url['host'], 80, $errno, $error, 1);
- if ($fh) {
- fwrite($fh, "GET " . $url['path'] . ($url['query'] ? '?' . $url['query'] : '') . " HTTP/1.1\r\nHost: {$url['host']}\r\nConnection: close\r\n\r\n");
- $status = explode(' ', fgets($fh), 3);
- if ($status[1] != 200) {
- $error = $status[2];
- }
- else {
- $headers = array();
- while (1) {
- $header = rtrim( fgets($fh) );
- // \r\n\r\n заголовки кончились
- if ($header == '') {
- break;
- }
- list($key, $val) = explode(': ', $header);
- $headers[ strtolower($key) ] = $val;
- }
- if ( !preg_match('#^image/(png|jpeg|gif)$#', $headers['content-type']) ) {
- $error = 'Файл не является изображением';
- }
- else if ( $headers['content-length'] < 10000 ) {
- $error = 'Изображение слишком маленькое';
- }
- else if ( $headers['content-length'] > 1000000 ) {
- $error = 'Изображение слишком большое';
- }
- else {
- $data = '';
- while ( !feof($fh) ) {
- $data .= fread($fh, 8192);
- }
- echo( 'data:' . $headers['content-type'] . ';base64,' . base64_encode($data) );
- }
- }
- fclose($fh);
- }
- }
- if ($error) {
- echo("0$error");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement