/** * HTTP API: WP_Http_Curl class * * @package WordPress * @subpackage HTTP * @since 4.4.0 */ /** * Core class used to integrate Curl as an HTTP transport. * * HTTP request method uses Curl extension to retrieve the url. * * Requires the Curl extension to be installed. * * @since 2.7.0 * @deprecated 6.4.0 Use WP_Http * @see WP_Http */ #[AllowDynamicProperties] class WP_Http_Curl { /** * Temporary header storage for during requests. * * @since 3.2.0 * @var string */ private $headers = ''; /** * Temporary body storage for during requests. * * @since 3.6.0 * @var string */ private $body = ''; /** * The maximum amount of data to receive from the remote server. * * @since 3.6.0 * @var int|false */ private $max_body_length = false; /** * The file resource used for streaming to file. * * @since 3.6.0 * @var resource|false */ private $stream_handle = false; /** * The total bytes written in the current request. * * @since 4.1.0 * @var int */ private $bytes_written_total = 0; /** * Send a HTTP request to a URI using cURL extension. * * @since 2.7.0 * * @param string $url The request URL. * @param string|array $args Optional. Override the defaults. * @return array|WP_Error Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error */ public function request( $url, $args = array() ) { $defaults = array( 'method' => 'GET', 'timeout' => 5, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => null, 'cookies' => array(), 'decompress' => false, 'stream' => false, 'filename' => null, ); $parsed_args = wp_parse_args( $args, $defaults ); if ( isset( $parsed_args['headers']['User-Agent'] ) ) { $parsed_args['user-agent'] = $parsed_args['headers']['User-Agent']; unset( $parsed_args['headers']['User-Agent'] ); } elseif ( isset( $parsed_args['headers']['user-agent'] ) ) { $parsed_args['user-agent'] = $parsed_args['headers']['user-agent']; unset( $parsed_args['headers']['user-agent'] ); } // Construct Cookie: header if any cookies are set. WP_Http::buildCookieHeader( $parsed_args ); $handle = curl_init(); // cURL offers really easy proxy support. $proxy = new WP_HTTP_Proxy(); if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) { curl_setopt( $handle, CURLOPT_PROXYTYPE, CURLPROXY_HTTP ); curl_setopt( $handle, CURLOPT_PROXY, $proxy->host() ); curl_setopt( $handle, CURLOPT_PROXYPORT, $proxy->port() ); if ( $proxy->use_authentication() ) { curl_setopt( $handle, CURLOPT_PROXYAUTH, CURLAUTH_ANY ); curl_setopt( $handle, CURLOPT_PROXYUSERPWD, $proxy->authentication() ); } } $is_local = isset( $parsed_args['local'] ) && $parsed_args['local']; $ssl_verify = isset( $parsed_args['sslverify'] ) && $parsed_args['sslverify']; if ( $is_local ) { /** This filter is documented in wp-includes/class-wp-http-streams.php */ $ssl_verify = apply_filters( 'https_local_ssl_verify', $ssl_verify, $url ); } elseif ( ! $is_local ) { /** This filter is documented in wp-includes/class-wp-http.php */ $ssl_verify = apply_filters( 'https_ssl_verify', $ssl_verify, $url ); } /* * CURLOPT_TIMEOUT and CURLOPT_CONNECTTIMEOUT expect integers. Have to use ceil since. * a value of 0 will allow an unlimited timeout. */ $timeout = (int) ceil( $parsed_args['timeout'] ); curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, $timeout ); curl_setopt( $handle, CURLOPT_TIMEOUT, $timeout ); curl_setopt( $handle, CURLOPT_URL, $url ); curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, ( true === $ssl_verify ) ? 2 : false ); curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, $ssl_verify ); if ( $ssl_verify ) { curl_setopt( $handle, CURLOPT_CAINFO, $parsed_args['sslcertificates'] ); } curl_setopt( $handle, CURLOPT_USERAGENT, $parsed_args['user-agent'] ); /* * The option doesn't work with safe mode or when open_basedir is set, and there's * a bug #17490 with redirected POST requests, so handle redirections outside Curl. */ curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, false ); curl_setopt( $handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS ); switch ( $parsed_args['method'] ) { case 'HEAD': curl_setopt( $handle, CURLOPT_NOBODY, true ); break; case 'POST': curl_setopt( $handle, CURLOPT_POST, true ); curl_setopt( $handle, CURLOPT_POSTFIELDS, $parsed_args['body'] ); break; case 'PUT': curl_setopt( $handle, CURLOPT_CUSTOMREQUEST, 'PUT' ); curl_setopt( $handle, CURLOPT_POSTFIELDS, $parsed_args['body'] ); break; default: curl_setopt( $handle, CURLOPT_CUSTOMREQUEST, $parsed_args['method'] ); if ( ! is_null( $parsed_args['body'] ) ) { curl_setopt( $handle, CURLOPT_POSTFIELDS, $parsed_args['body'] ); } break; } if ( true === $parsed_args['blocking'] ) { curl_setopt( $handle, CURLOPT_HEADERFUNCTION, array( $this, 'stream_headers' ) ); curl_setopt( $handle, CURLOPT_WRITEFUNCTION, array( $this, 'stream_body' ) ); } curl_setopt( $handle, CURLOPT_HEADER, false ); if ( isset( $parsed_args['limit_response_size'] ) ) { $this->max_body_length = (int) $parsed_args['limit_response_size']; } else { $this->max_body_length = false; } // If streaming to a file open a file handle, and setup our curl streaming handler. if ( $parsed_args['stream'] ) { if ( ! WP_DEBUG ) { $this->stream_handle = @fopen( $parsed_args['filename'], 'w+' ); } else { $this->stream_handle = fopen( $parsed_args['filename'], 'w+' ); } if ( ! $this->stream_handle ) { return new WP_Error( 'http_request_failed', sprintf( /* translators: 1: fopen(), 2: File name. */ __( 'Could not open handle for %1$s to %2$s.' ), 'fopen()', $parsed_args['filename'] ) ); } } else { $this->stream_handle = false; } if ( ! empty( $parsed_args['headers'] ) ) { // cURL expects full header strings in each element. $headers = array(); foreach ( $parsed_args['headers'] as $name => $value ) { $headers[] = "{$name}: $value"; } curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers ); } if ( '1.0' === $parsed_args['httpversion'] ) { curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0 ); } else { curl_setopt( $handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 ); } /** * Fires before the cURL request is executed. * * Cookies are not currently handled by the HTTP API. This action allows * plugins to handle cookies themselves. * * @since 2.8.0 * * @param resource $handle The cURL handle returned by curl_init() (passed by reference). * @param array $parsed_args The HTTP request arguments. * @param string $url The request URL. */ do_action_ref_array( 'http_api_curl', array( &$handle, $parsed_args, $url ) ); // We don't need to return the body, so don't. Just execute request and return. if ( ! $parsed_args['blocking'] ) { curl_exec( $handle ); $curl_error = curl_error( $handle ); if ( $curl_error ) { curl_close( $handle ); return new WP_Error( 'http_request_failed', $curl_error ); } if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ), true ) ) { curl_close( $handle ); return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) ); } curl_close( $handle ); return array( 'headers' => array(), 'body' => '', 'response' => array( 'code' => false, 'message' => false, ), 'cookies' => array(), ); } curl_exec( $handle ); $processed_headers = WP_Http::processHeaders( $this->headers, $url ); $body = $this->body; $bytes_written_total = $this->bytes_written_total; $this->headers = ''; $this->body = ''; $this->bytes_written_total = 0; $curl_error = curl_errno( $handle ); // If an error occurred, or, no response. if ( $curl_error || ( 0 === strlen( $body ) && empty( $processed_headers['headers'] ) ) ) { if ( CURLE_WRITE_ERROR /* 23 */ === $curl_error ) { if ( ! $this->max_body_length || $this->max_body_length !== $bytes_written_total ) { if ( $parsed_args['stream'] ) { curl_close( $handle ); fclose( $this->stream_handle ); return new WP_Error( 'http_request_failed', __( 'Failed to write request to temporary file.' ) ); } else { curl_close( $handle ); return new WP_Error( 'http_request_failed', curl_error( $handle ) ); } } } else { $curl_error = curl_error( $handle ); if ( $curl_error ) { curl_close( $handle ); return new WP_Error( 'http_request_failed', $curl_error ); } } if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ), true ) ) { curl_close( $handle ); return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) ); } } curl_close( $handle ); if ( $parsed_args['stream'] ) { fclose( $this->stream_handle ); } $response = array( 'headers' => $processed_headers['headers'], 'body' => null, 'response' => $processed_headers['response'], 'cookies' => $processed_headers['cookies'], 'filename' => $parsed_args['filename'], ); // Handle redirects. $redirect_response = WP_Http::handle_redirects( $url, $parsed_args, $response ); if ( false !== $redirect_response ) { return $redirect_response; } if ( true === $parsed_args['decompress'] && true === WP_Http_Encoding::should_decode( $processed_headers['headers'] ) ) { $body = WP_Http_Encoding::decompress( $body ); } $response['body'] = $body; return $response; } /** * Grabs the headers of the cURL request. * * Each header is sent individually to this callback, and is appended to the `$header` property * for temporary storage. * * @since 3.2.0 * * @param resource $handle cURL handle. * @param string $headers cURL request headers. * @return int Length of the request headers. */ private function stream_headers( $handle, $headers ) { $this->headers .= $headers; return strlen( $headers ); } /** * Grabs the body of the cURL request. * * The contents of the document are passed in chunks, and are appended to the `$body` * property for temporary storage. Returning a length shorter than the length of * `$data` passed in will cause cURL to abort the request with `CURLE_WRITE_ERROR`. * * @since 3.6.0 * * @param resource $handle cURL handle. * @param string $data cURL request body. * @return int Total bytes of data written. */ private function stream_body( $handle, $data ) { $data_length = strlen( $data ); if ( $this->max_body_length && ( $this->bytes_written_total + $data_length ) > $this->max_body_length ) { $data_length = ( $this->max_body_length - $this->bytes_written_total ); $data = substr( $data, 0, $data_length ); } if ( $this->stream_handle ) { $bytes_written = fwrite( $this->stream_handle, $data ); } else { $this->body .= $data; $bytes_written = $data_length; } $this->bytes_written_total += $bytes_written; // Upon event of this function returning less than strlen( $data ) curl will error with CURLE_WRITE_ERROR. return $bytes_written; } /** * Determines whether this class can be used for retrieving a URL. * * @since 2.7.0 * * @param array $args Optional. Array of request arguments. Default empty array. * @return bool False means this class can not be used, true means it can. */ public static function test( $args = array() ) { if ( ! function_exists( 'curl_init' ) || ! function_exists( 'curl_exec' ) ) { return false; } $is_ssl = isset( $args['ssl'] ) && $args['ssl']; if ( $is_ssl ) { $curl_version = curl_version(); // Check whether this cURL version support SSL requests. if ( ! ( CURL_VERSION_SSL & $curl_version['features'] ) ) { return false; } } /** * Filters whether cURL can be used as a transport for retrieving a URL. * * @since 2.7.0 * * @param bool $use_class Whether the class can be used. Default true. * @param array $args An array of request arguments. */ return apply_filters( 'use_curl_transport', true, $args ); } } Arquivo de palavras - Inclusão Digital nas Escolas

Pressione ESC para fechar

palavras

Mestre da Palavra

Inclusão Digital 0 333

Mestre da Palavra oferece a jogabilidade clássica de um jogo de palavras de num novo e divertido formato.
Mais de 2, 000 Níveis.
Exercitar o cérebro e melhorar a gramática.
FUNCIONALIDADES
– Deslize sobre as letras para formar palavras
– Encontre palavras Extra para receber moedas
– Mais de 2000 NÍVEIS para jogar
– Toque no botão “Baralhar” para alterar a ordem das letras
– Toque no botão “Dicas” para obter pistas

Continue lendo

Procura de palavras – Conectar

Inclusão Digital 0 267

Dificuldade aumenta junto com os níveis. Fácil de jogar, mas difícil de bater!
É adequado para iniciantes e mestres de palavras. Venha se desafiar!
Dois modos de jogo: modo tradicional e modo cruzado.
Receba recompensas encontrando mais palavras extras!
Sem limites de internet, você pode jogar com ou sem internet.
Corrija as letras horizontalmente, verticalmente, diagonalmente, para frente ou para trás para formar uma palavra oculta específica. Encontre o máximo de palavras possível para desbloquear níveis e ganhar moedas de bônus extras.
★ Renove seu vocabulário

Continue lendo

Rolagem de Palavras – Palavras

Inclusão Digital 0 230

Word Scroll é um jogo de palavras, sua missão é encontrar as palavras corretas em um tabuleiro feito de letras antes que o tempo acabe.
COMO JOGAR
1. Encontre e deslize as palavras corretas para realizar cada nível.
2. Cada nível tem um tema específico para restringi-lo.
RECURSOS
• Jogabilidade fácil, basta deslizar para a esquerda e para a direita para conectar letras e formar palavras!
• Mais de 2.000 níveis com palavras!
• Palavras extras estão esperando para serem descobertas e ganhe recompensas.

Continue lendo

Jogo da forca – Palavras de Tellmewow

Inclusão Digital 0 263

O jogo lhe dará a opção de escolher vogais e consoantes para tentar adivinhar qual palavra está escondida. Para cada erro que você cometer, a figura de um homem de pau será formada: primeiro a forca, depois a cabeça, o corpo e, finalmente, os braços e pernas.

Você ganhará o jogo se puder escrever a palavra correta antes que a figura do homem da vara seja completada. Se não, será enforcado e o jogo será finalizado.

– centenas de palavras e níveis
– Aprenda vocabulário e palavras em diferentes idiomas
– Jogo simples e divertido
– Design atraente e colorido
– Possibilidade de ativar ou remover o som.

O carrasco está disponível em diferentes idiomas para jogadores de todo o mundo: espanhol, inglês, português, francês, italiano e muito mais!

Continue lendo

Letroca

Inclusão Digital 0 257

Descubra o maior número de palavras a partir da combinação das letras. 4 modos diferentes de jogo.
Destaques:
– 4 modos de jogo (Stars, Clássico, Metade, Zen) para atender todos os gostos.
– Disponível em Português, Inglês, Espanhol, Francês, Alemão e Italiano.
– 20 mundos temáticos com 480 níveis e muito mais chegando.

Continue lendo

Caça Palavras em Português! de Tellmewow

Inclusão Digital 0 219

Encontre palavras misturadas de diferentes temas. As palavras podem estar escondidas diagonalmente, horizontalmente, verticalmente ou na direção inversa. Estimule sua agilidade visual e descubra todas as palavras embaralhadas!
– 4 níveis de dificuldades: 7X7, 8X8, 9X9, 10X10
– Disponível em 8 idiomas: Espanhol – Sopa de letras, Português – Caça Plavras, Inglês – Word Search, Francês – Mots Mêlés, Russo – Поиск Слова, Italiano – Parole Intrecciate, Indonésio e Alemão – Wortsuche.
CATEGORIAS DE PALAVRAS
– Animais
– Comida
– Esportes
– Profissões
– Cidades
– Países
e muito mais!

Continue lendo

Caça Palavras Escondidas

Inclusão Digital 0 294

O jogo Pesquisa de Palavras são dois mil níveis da diversidade de palavras.
Tudo o que você precisa fazer é descobrir as palavras escondidas e evoluir a partir de um átomo para um homem.
Você pode se tornar a Supermente, preenchendo todos os quadrados com palavras?

A essência do jogo é encontrar as palavras escondidas no quadro-negro com letras.
Selecione as letras com o dedo e encontre todas as palavras para passar um nível.

Continue lendo

Esmagar Palavras: Caça Palavra

Inclusão Digital 0 259

As palavras são a base da aprendizagem de idiomas. Você pode usar o Esmagar Palavras para memorizar e praticar a grafia de palavras.

Caracteristicas:
-Operação fácil: Basta deslizar os dedos para eliminar a palavra.
-Jogue a qualquer hora, em qualquer lugar: Sem conexão WIFI necessária.
-Diversão Educacional: O jogo Esmagar Palavras contém dezenas de milhares de blocos de palavras e vocabulários.
-Níveis massivos: Mais de 10 mil níveis, com dificuldade crescente, extremamente fácil de começar, mas difícil de passar, quebra-cabeça cerebral.

Como jogar:
– Deslize as letras selecionadas para formar uma palavra.
-Se as letras selecionadas puderem ser combinadas em uma palavra em ordem, ela desaparecerá automaticamente. Quando a palavra selecionada desaparecer, o bloco de palavras acima dele desaparecerá.
-Observe o texto nesses blocos de palavras para formar a palavra com cuidado, o que pode ajudá-lo a remover o bloco de palavras para passar de nível mais rápido.
-O jogo também pode acumular vocabulário de bônus. Quando encontrar a palavra que não se encaixa ao tema, esta palavra entrará no banco de vocabulário de bônus.

Este é um jogo de palavras mais raro do que parece!

Continue lendo

Jardim das letras

Inclusão Digital 0 235

Jogue diariamente e melhore sua grafia!
Memorize palavras novas e expanda seu vocabulário!
– Simples e acessível: deslize o dedo nas letras para formar uma palavra.
– Original e divertido: o jogo dá dicas sobre as palavras que você pode achar.
– Deslumbre-se com os diversos e coloridos fundos de jardim! O clima tranquilo e aconchegante ajuda você a se concentrar ao buscar as palavras.
– Mais de 2000 quebra-cabeças em 8 línguas, com atualizações regulares a cada semana!
– Milhares de palavras escondidas para você desbloquear, graças aos nossos abrangentes dicionários! Ganhe moedas a cada palavra bônus encontrada.
– Não consegue pensar em nenhuma palavra no momento? Use uma dica para descobrir uma letra no tabuleiro!

Continue lendo