A função stream_context_create utiliza-se para criar um fluxo de contexto (um conjunto de de informações referentes a uma requisição http, ftp, ssl, etc) e configurar a forma como a requisição será realizada. A função permite usar várias opções de configuração, como Socket, http, ftp e outros.
resource stream_context_create ([ array $options
[, array $params
]] )
Vamos então criar um programa exemplo com as opções de contexto para uma requisição HTTP comum.
$data = array ('nome' => 'maria', 'idade' => '19'); $data = http_build_query($data); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,et;q=0.2,es;q=0.2,id;q=0.2,fr;q=0.2,gl;q=0.2,de;q=0.2 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 Accept-Encoding: gzip,deflate,sdch Cache-Control: max-age=0 Connection: keep-alive', 'content' => $data ) );
Como se pode observar temos um array principal informando o protocolo usado no contexto, que é o http, que é o item do primeiro array. Dentro do array http temos as seguintes variáveis do contexto da requisição:
- Method: tipo do método usado para a requisição ( POST ou GET). No nosso caso estamos a utilizar o POST
- Header: Variáveis de cabeçalho. Aqui podemos enviar os tipos comuns de informações que são enviadas no cabeçalho das requisições, como cookies, content-type, user-agent, utilizador e password de uma autenticação HTML.
- Content: As variáveis enviadas no POST ou GET. Como alternativa à stringnome=valor&nome=valor, é possível usar função http_build_query para transformar um array no estilo chave=>valor numa querystring de url. Essa abordagem é mais prática e mais segura.
$context = stream_context_create($opts);
Depois de criada o fluxo de contexto, vamos usar a função php file_get_contents par enviar a requisição de uma pagina x ao servidor. Observe o código abaixo:
$http='http://www.pagina_x.html'; $data = file_get_contents($http, true, $context);
A função tem muitas opções que podem ser utilizadas conforme o que for necessário.
The post Exemplo de utilização da função php stream_context_create appeared first on Inobweb.com – artigos e notícias na web.