|
刚开始学php,做个小例子同初学者共同学习,讨论:
程序要求:在Google中搜索关键字,将搜索结果的标题、网址和简介取出,改成自已喜欢和需要的样式。
程序步骤:首先,去除Google搜索结果的台头和脚注,在剩余的搜索结果中再分割出各项小条目,再从小条目中剥离HTML格式标记,替换成我们想要的格式。
<?php
$keywords=$_GET['keywords'];
echo '<form method="get">'; //没有参数的form,默认提交方式为get,提交到本身
echo '<input type="text" name="keywords">'; //构造一个文本输入框
echo '<input type="submit" value="查询">'; //构造一个提交查询按钮
echo '</form>';
if (isset($keywords)) //提交后PHP会生成变量 kwywords,即要求下面的程序在提交后运行
{
urlencode($keywords); //对用户输入内容进行URL编码
$result=file("http://www.google.com/search?q=". $keywords."&btnG=Google%CB%D1%CB%F7&hl=zh-CN&lr="); //对查询语句进行变量替换,将查询结果保存在数组变量 result中
$result_string=join('',$result); //将数组$result合并成字符串,各数组元素之间用空格粘和
//echo $result_string;
$result_string=strstr($result_string,"<div><div class=g>");//去掉台头;
$position=strpos($result_string,"<p class=e>");
$result_string=substr($result_string,0, $position);//截取第一个
//我们就得到一个数组 result_array,其中每个元素都是一个搜索结果条目。我们所要做的仅仅是研究每个条目及其HTML显示格式代码,然后按要求替换就行了。下面用循环来处理 result_array中的每个条目。
$result_array=explode("</td></tr></table></div>" ,$result_string); //分割小条目;
for($i=0;$i<3;$i++){
//除掉红色样式
$styleT="<font color=CC0033>";
$styleE="</font>";
$result_array[$i]=ereg_replace($styleT,"",$result_array[$i]);
$result_array[$i]=ereg_replace($styleE,"",$result_array[$i]);
//echo $result_array[$i];
//取出标题
$titleT=".+class=l>";
$titleE="</a>.+";
$title[$i]=ereg_replace($titleT,"",$result_array[$i]);
$title[$i]=ereg_replace($titleE,"",$title[$i]);
echo $title[$i];
//取出内容提要
echo "<br/>";
$c;
$c;
$content[$i]=ereg_replace($contentT,"",$result_array[$i]);
$content[$i]=ereg_replace($contentE,"",$content[$i]);
echo $content[$i];
//取出链接
$urlleft=".+<a href=\"";
$urlright="\" target=_blank.+";
$urll=ereg_replace($urlleft,"",$result_array[$i]);
$url=ereg_replace($urlright,"",$urll);
echo $url;
echo "<br/>";
}
}
?>
//这样我们就得出一个完全没有样式的搜索结果啦,大家可根据自己的需求另加样式。
[ 本帖最后由 vavalen 于 2008-2-26 12:07 编辑 ] |
评分
-
查看全部评分
|