Heim > Backend-Entwicklung > PHP-Tutorial > 怎么取出百度某排行榜50条并在每条加前后缀呢

怎么取出百度某排行榜50条并在每条加前后缀呢

WBOY
Freigeben: 2016-06-23 13:43:53
Original
1070 Leute haben es durchsucht

如http://top.baidu.com/buzz?b=26&c=1&fr=topcategory_c1


回复讨论(解决方案)

已把主要???集成??,加前後?你想怎?加都可以了。

<?phpfunction getContent($url){	$ch = curl_init();	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);		curl_setopt($ch, CURLOPT_URL, $url);	$response = curl_exec($ch);	if($error=curl_error($ch)){		die($error);	}	curl_close($ch);	$content = iconv('GB2312','UTF8',$response);	return $content;}function getKeywords($content){	// keywords	preg_match_all('/<td class="keyword">(.*?)<\/td>/is', $content, $keywords);	$data = $keywords[1];	$result = array();	foreach($data as $val){		preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/is', $val, $tmp);		array_push($result, array('name'=>$tmp[2][0],'url'=>'http://top.baidu.com'.substr($tmp[1][0],1)));	}	return $result;}function getTc($content){	// tc	preg_match_all('/<td class="tc">(.*?)<\/td>/is', $content, $tc);	$data = $tc[1];	$result = array();	foreach($data as $val){		preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/is', $val, $tmp);		array_push($result, array('brief'=>$tmp[1][0], 'news'=>$tmp[1][1], 'tieba'=>$tmp[1][2]));	}	return $result;}function getNum($content){	// last	preg_match_all('/<td class="last">(.*?)<\/td>/is', $content, $last); //icon-rise up icon-fall down	$data = $last[1];	$result = array();	foreach($data as $val){		preg_match_all('/<span.*?class="(.*?)">(.*?)<\/span>/is', $val, $tmp);		array_push($result, array('flag'=>str_replace('icon-','',$tmp[1][0]), 'num'=>$tmp[2][0]));	}	return $result;}$url = 'http://top.baidu.com/buzz?b=26&c=1&fr=topcategory_c1';$content = getContent($url);$result = array();$keywords = getKeywords($content);$tc = getTc($content);$num = getNum($content);for($i=0,$len=count($keywords); $i<$len; $i++){	$tmp = array(		'name' => $keywords[$i]['name'],		'url' => $keywords[$i]['url'],		'brief' => $tc[$i]['brief'],		'news' => $tc[$i]['news'],		'tieba' => $tc[$i]['tieba'],		'flag' => $num[$i]['flag'],		'num' => $num[$i]['num']	);	array_push($result, $tmp);}echo '<pre class="brush:php;toolbar:false">';print_r($result);echo '
Nach dem Login kopieren
Nach dem Login kopieren
';?>

?集后的??格式如下:

Array(    [0] => Array        (            [name] => 匆匆那年            [url] => http://top.baidu.com/detail?b=26&c=1&w=%B4%D2%B4%D2%C4%C7%C4%EA            [brief] => http://baike.baidu.com/search/word?word=%B4%D2%B4%D2%C4%C7%C4%EA            [news] => http://news.baidu.com/ns?tn=news&from=news&cl=2&rn=20&ct=1&word=%B4%D2%B4%D2%C4%C7%C4%EA            [tieba] => http://tieba.baidu.com/f?kw=%B4%D2%B4%D2%C4%C7%C4%EA            [flag] => rise            [num] => 162540        )    [1] => Array        (            [name] => 一个人的武林            [url] => http://top.baidu.com/detail?b=26&c=1&w=%D2%BB%B8%F6%C8%CB%B5%C4%CE%E4%C1%D6            [brief] => http://baike.baidu.com/search/word?word=%D2%BB%B8%F6%C8%CB%B5%C4%CE%E4%C1%D6            [news] => http://news.baidu.com/ns?tn=news&from=news&cl=2&rn=20&ct=1&word=%D2%BB%B8%F6%C8%CB%B5%C4%CE%E4%C1%D6            [tieba] => http://tieba.baidu.com/f?kw=%D2%BB%B8%F6%C8%CB%B5%C4%CE%E4%C1%D6            [flag] => rise            [num] => 75428        )    [2] => Array        (            [name] => 星际穿越            [url] => http://top.baidu.com/detail?b=26&c=1&w=%D0%C7%BC%CA%B4%A9%D4%BD            [brief] => http://baike.baidu.com/search/word?word=%D0%C7%BC%CA%B4%A9%D4%BD            [news] => http://news.baidu.com/ns?tn=news&from=news&cl=2&rn=20&ct=1&word=%D0%C7%BC%CA%B4%A9%D4%BD            [tieba] => http://tieba.baidu.com/f?kw=%D0%C7%BC%CA%B4%A9%D4%BD            [flag] => rise            [num] => 70538        )    [3] => Array        (            [name] => 心花路放            [url] => http://top.baidu.com/detail?b=26&c=1&w=%D0%C4%BB%A8%C2%B7%B7%C5            [brief] => http://baike.baidu.com/search/word?word=%D0%C4%BB%A8%C2%B7%B7%C5            [news] => http://news.baidu.com/ns?tn=news&from=news&cl=2&rn=20&ct=1&word=%D0%C4%BB%A8%C2%B7%B7%C5            [tieba] => http://tieba.baidu.com/f?kw=%D0%C4%BB%A8%C2%B7%B7%C5            [flag] => fall            [num] => 68233        )        。。。)
Nach dem Login kopieren

function getContent 修改?以下代?。

function getContent($url){	$ch = curl_init();	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);		curl_setopt($ch, CURLOPT_URL, $url);	curl_setopt($ch, CURLOPT_TIMEOUT, 300);	$response = curl_exec($ch);	if($error=curl_error($ch)){		die($error);	}	curl_close($ch);	$content = iconv('GB2312','UTF8//IGNORE',$response);	return $content;}
Nach dem Login kopieren

已把主要???集成??,加前後?你想怎?加都可以了。

<?phpfunction getContent($url){	$ch = curl_init();	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);		curl_setopt($ch, CURLOPT_URL, $url);	$response = curl_exec($ch);	if($error=curl_error($ch)){		die($error);	}	curl_close($ch);	$content = iconv('GB2312','UTF8',$response);	return $content;}function getKeywords($content){	// keywords	preg_match_all('/<td class="keyword">(.*?)<\/td>/is', $content, $keywords);	$data = $keywords[1];	$result = array();	foreach($data as $val){		preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/is', $val, $tmp);		array_push($result, array('name'=>$tmp[2][0],'url'=>'http://top.baidu.com'.substr($tmp[1][0],1)));	}	return $result;}function getTc($content){	// tc	preg_match_all('/<td class="tc">(.*?)<\/td>/is', $content, $tc);	$data = $tc[1];	$result = array();	foreach($data as $val){		preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/is', $val, $tmp);		array_push($result, array('brief'=>$tmp[1][0], 'news'=>$tmp[1][1], 'tieba'=>$tmp[1][2]));	}	return $result;}function getNum($content){	// last	preg_match_all('/<td class="last">(.*?)<\/td>/is', $content, $last); //icon-rise up icon-fall down	$data = $last[1];	$result = array();	foreach($data as $val){		preg_match_all('/<span.*?class="(.*?)">(.*?)<\/span>/is', $val, $tmp);		array_push($result, array('flag'=>str_replace('icon-','',$tmp[1][0]), 'num'=>$tmp[2][0]));	}	return $result;}$url = 'http://top.baidu.com/buzz?b=26&c=1&fr=topcategory_c1';$content = getContent($url);$result = array();$keywords = getKeywords($content);$tc = getTc($content);$num = getNum($content);for($i=0,$len=count($keywords); $i<$len; $i++){	$tmp = array(		'name' => $keywords[$i]['name'],		'url' => $keywords[$i]['url'],		'brief' => $tc[$i]['brief'],		'news' => $tc[$i]['news'],		'tieba' => $tc[$i]['tieba'],		'flag' => $num[$i]['flag'],		'num' => $num[$i]['num']	);	array_push($result, $tmp);}echo '<pre class="brush:php;toolbar:false">';print_r($result);echo '
Nach dem Login kopieren
Nach dem Login kopieren
';?>


为什么我测试时,这个数组输出的是空的

你的php文件是否utf8

你的php文件是否utf8


是的

那你先把getContent的返回?出,看看有什?。

?了,你把????打?,如果白屏估?是??。你是否有安?curl?
在?面?加上
ini_set('display_errors','on');
error_reporting(E_ALL);
看看有什??。如果提示curl?有安?的,
可以改getContent?

function getContent($url){    $response = file_get_contents($url); // ?句代替curl     $content = iconv('GB2312','UTF8//IGNORE',$response);     return $content;}
Nach dem Login kopieren

什么都没输出
编码换成ANSI也不成

你测试可用的文件能打包的吗

Notice: iconv() [function.iconv]: Wrong charset, conversion from `GB2312' to `UTF8//IGNORE' is not allowed in F:\PHPnow-1.5.6\vhosts\test.php on line 15
Nach dem Login kopieren
Nach dem Login kopieren

$content = iconv('GB2312','UTF-8',$response);
Nach dem Login kopieren


这样就成了


问题我是个菜鸟,这个数组要怎么取出来正常使用呢

$content = iconv('GBK','UTF-8//IGNORE', $response);

Notice: iconv() [function.iconv]: Wrong charset, conversion from `GB2312' to `UTF8//IGNORE' is not allowed in F:\PHPnow-1.5.6\vhosts\test.php on line 15
Nach dem Login kopieren
Nach dem Login kopieren

$content = iconv('GB2312','UTF8//IGNORE',$response);
改?
$content = iconv('GBK','UTF8//IGNORE',$response);
??

拿到???不知道怎?用。。。呵呵。

你想?示的?子是怎?的,就做成怎?的html,然後在需要的地方,插入????。

数组一巧不同,郁闷了

其实我只要成这样就行的

<a href="xxx.php?title=匆匆那年">匆匆那年</a><a href="xxx.php?title=匆匆那年">匆匆那年</a><a href="xxx.php?title=匆匆那年">匆匆那年</a><a href="xxx.php?title=匆匆那年">匆匆那年</a><a href="xxx.php?title=匆匆那年">匆匆那年</a>
Nach dem Login kopieren

??出的完整例子,你好好??下。
中?你想改什?,直接改就可以了。

<?phpfunction getContent($url){	$ch = curl_init();	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);		curl_setopt($ch, CURLOPT_URL, $url);	curl_setopt($ch, CURLOPT_TIMEOUT, 300);	$response = curl_exec($ch);	if($error=curl_error($ch)){		die($error);	}	curl_close($ch);	$content = iconv('GBK','UTF-8//IGNORE',$response);	return $content;}function getKeywords($content){	// keywords	preg_match_all('/<td class="keyword">(.*?)<\/td>/is', $content, $keywords);	$data = $keywords[1];	$result = array();	foreach($data as $val){		preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/is', $val, $tmp);		array_push($result, array('name'=>$tmp[2][0],'url'=>'http://top.baidu.com'.substr($tmp[1][0],1)));	}	return $result;}function getTc($content){	// tc	preg_match_all('/<td class="tc">(.*?)<\/td>/is', $content, $tc);	$data = $tc[1];	$result = array();	foreach($data as $val){		preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/is', $val, $tmp);		array_push($result, array('brief'=>$tmp[1][0], 'news'=>$tmp[1][1], 'tieba'=>$tmp[1][2]));	}	return $result;}function getNum($content){	// last	preg_match_all('/<td class="last">(.*?)<\/td>/is', $content, $last); //icon-rise up icon-fall down	$data = $last[1];	$result = array();	foreach($data as $val){		preg_match_all('/<span.*?class="(.*?)">(.*?)<\/span>/is', $val, $tmp);		array_push($result, array('flag'=>str_replace('icon-','',$tmp[1][0]), 'num'=>$tmp[2][0]));	}	return $result;}$url = 'http://top.baidu.com/buzz?b=340&c=1&fr=topbuzz_b339_c1';$content = getContent($url);$result = array();$keywords = getKeywords($content);$tc = getTc($content);$num = getNum($content);for($i=0,$len=count($keywords); $i<$len; $i++){	$tmp = array(		'name' => $keywords[$i]['name'],		'url' => $keywords[$i]['url'],		'brief' => $tc[$i]['brief'],		'news' => $tc[$i]['news'],		'tieba' => $tc[$i]['tieba'],		'flag' => $num[$i]['flag'],		'num' => $num[$i]['num']	);	array_push($result, $tmp);}?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html> <head>  <meta http-equiv="content-type" content="text/html;charset=utf-8">  <title> baidu </title> </head> <body>	<table>	<?php	$i = 1;	foreach($result as $val){	?>	<tr>		<td><?=$i ?></td>		<td><a href="<?=$val['url'] ?>"><?=$val['name'] ?></a></td>		<td><a href="<?=$val['brief'] ?>">?介</a></td>		<td><a href="<?=$val['news'] ?>">新?</a></td>		<td><a href="<?=$val['tieba'] ?>">?吧</a></td>		<td><?php if($val['flag']=='fall'){ echo '↓'; }else{echo '↑'; } ?><?=$val['num'] ?></td>	</tr>	<?php		$i++;	}	?>	</table> </body></html>
Nach dem Login kopieren

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage