• Как загрузить поток файла post запросом curl?

    @foul11 Автор вопроса
    если кто нибудь сюда придёт за решением, сокеты самое простое, что можно для этого использовать

    function uploadFile($desource, $source, $name='file.txt', $field='file'){
    	$bodyend = $body = $head =  $out = '';
    	$boundary = '-------------'. uniqid();
    	
    	// $cipher = new \phpseclib3\Crypt\RC4();
    	// $cipher->setKey('qwertyuiop');
    	
    	$source = parse_url($source);
    	
    	$source['scheme'] = $source['scheme'] == 'http' ? '' : $source['scheme'];
    	$source['scheme'] = ($source['scheme'] == 'https' ? 'ssl' : $source['scheme']) . ($source['scheme'] ? '://' : '');
    	$source['port'] = $source['port'] ?? ($source['scheme'] == 'ssl://' ? 443 : 80);
    	$source['path'] = ($source['path'] ?? '/') . ($source['query'] ? ('?'. $source['query']) : '');
    	
    	$size = filesize($desource);
    	$file = fopen($desource, 'rb');
    	$server = fsockopen("{$source['scheme']}{$source['host']}", $source['port']);
    	
    	$body .= "--$boundary\r\n";
    	$body .= "Content-Disposition: form-data; name=\"$field\";  filename=\"$name\"\r\n";
    	$body .= "Content-Type: application/octet-stream\r\n\r\n";
    	
    	$bodyend .= "\r\n";
    	$bodyend .=  "--$boundary--\r\n\r\n";
    	
    	$head .= "POST {$source['path']} HTTP/1.1\r\n";
    	$head .= "Host: {$source['host']}\r\n";
    	$head .= "Content-Type: multipart/form-data; boundary=$boundary\r\n";
    	$head .= 'Content-length: '. (strlen($body) + $size + strlen($bodyend)) ."\r\n";
    	$head .= "\r\n";
    	
    	fputs($server, $head);
    	fputs($server, $body);
    	
    	while(!feof($file)){
    		// fputs($server, $cipher->encrypt(fread($file, 16384)));
    		fputs($server, fread($file, 16384));
    	}
    	
    	fputs($server, $bodyend);
    	
    	while(!feof($server)) $out .= fread($server, 16384);
    	fclose($server);
    	
    	return $out;
    }
    Ответ написан
    Комментировать
  • Как сделать алгоритм победы в больших крестиках-ноликах?

    @foul11
    Можешь попробовать сделать так:

    У тебя есть функция, которая принимает 3мя аргумента позиция, крестик или нолик, сторона света, при каждом клике по полю запускай 8 раз функцию с координатами тыка, и восьмью сторонами света например от 0-7 (0 верхняя клеточка, 7 правая верхняя клеточка), если у тебя удачно найден ну например крестик в ту сторону куда запустил, запускай рекурсивно в ту же сторону, но с координатами найденого крестика, если дошел до конца и нечего нет, верни 1, подсчитай общее кол-во совпадений, тоесть сколько раз входил в рекурсию + 1 и возвращаешь результат пусть будет 5, а в том for который запускал в начале делай проверку сколько подряд должно быть, ну например для выигрыша как раз 5 и надо, значит я выиграл
    Ответ написан
    4 комментария
  • Проблемы с библиотекой math.h Проблемы с cos?

    @foul11
    Наверное должно было получится так:
    x=(1 - 2 * pow(cos(2 * a), 2.0)) / (2 * (tg((2 * a) - (PI / 4)))) * (pow(sin((PI / 4) + (2 * b)),2.0));
    Ответ написан
    Комментировать