<?php
função get_url_content($Url,$Method = 'c') {
//Introduza a codificação de idioma necessária. Caso contrário, o padrão será utf-8, não se preocupe.
global $Charset;
$Urlarr = parse_url($Url);
//Se o nome de domínio não puder ser detectado, retorne.
if (!isset($Urlarr['host'])) {
retornar falso;
}
//Definimos múltiplas informações do cabeçalho de forma inteligente.
foreach (@getallheaders() como $key => $val){
$key==='Host' && $val = $Urlarr['host'];
$key==='Referer' && $val ='http://'.$Urlarr['host'];
$str .= "'$chave:$val', n";
}
//Origem virtual.
!eregi('Referente',$str) && $str .="'Referente:http://{$Urlarr['host']}', n";
//Após a correção, basicamente, a fonte também é aquele site, e o host também é a URL do site.
$Cabeçalho = array(trim($str));
//O seguinte é apenas para escolher qual programa usar para coleta.
if($Method === 'f'&&function_exists('file_get_contents')) {
$opções = array(
'http'=>matriz(
'método'=>"OBTER",
'cabeçalho'=>$Cabeçalho,
)
);
$cxContext=stream_context_create($opts);
$file_contents = @file_get_contents($Url, false, $cxContext);
} elseif ($Method === 'c'&&function_exists('curl_init')) {
$Ch = curl_init();
$Tempo limite = 5;
curl_setopt($Ch,CURLOPT_HTTPHEADER,$Cabeçalho);
curl_setopt ($Ch, CURLOPT_URL, $Url);
curl_setopt ($Ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($Ch, CURLOPT_CONNECTTIMEOUT, $Timeout);
$file_contents = curl_exec($Ch);
curl_close($Ch);
}
//Para fazer com que o estilo seja exibido lindamente, adicionamos um guia de destino a ele.
$file_contents = str_replace('</title>',"</title>n<base href=" http://{$Urlarr['host']}/ " />",$file_contents);
//Processar as codificações mais comuns Se o site de destino não tiver codificação, o padrão será GBK.
!preg_match('/charset=([^<>"]*)"/isU',$file_contents,$lang) && $lang[1]='GBK';
function_exists('mb_convert_encoding') && $file_contents = mb_convert_encoding($file_contents,empty($Charset)?'UTF-8':$Charset,$lang[1]);
//Sai de parte do código;
unset($Url,$lang,$Timeout,$Urlarr,$Charset);
retornar $ arquivo_contents;
}
//Começa o teste usando o método file_get_contents
HEADER("TIPO DE CONTEÚDO:TEXTO/HTML; CHARSET=UTF-8");
//http://www.xtzj.com/read-htm-tid-347550.html Isso não pode ser coletado.
$ arquivo = get_url_content(" http://www.hao123.com",'f' );
$arquivo = strip_tags($arquivo,'<a>');
preg_match_all('/(http:[^"<>]*)>/isU',$arquivo,$link);unset($link[0]);
$link = $link[1];
//Vamos simular a obtenção de dados você mesmo.
$x = 10;
$arquivo = get_url_content($link[$x]);
eco $arquivo;
?>
Escreva todas as explicações e comentários.
Se houver alguma resposta que você não entenda... Divulgarei o conhecimento sobre a coleção