百度搜索效果(服务器来获取数据)

百度搜索效果:

AJAX代码:

ajax本身不具有跨域功能,所以由服务器来访问数据:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>由服务器来获取数据</title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
				list-style: none;
			}
			#box {
				width: 500px;
				margin: 50px auto 0;
			}
			#ipt {
				width: 480px;
				height: 30px;
				padding: 0 8px;
				line-height: 30px;
				font-size: 18px;
			}
			#list {
				padding: 0 10px;
				background: #e3e3e3;
			}
			#list li {
				line-height: 26px;
				font-size: 16px;
				color: blue;
			}
			#list li:hover {
				background: #ccc;
			}
		</style>
	</head>
	<body>
		<div id="box">
			<input type="text" name="ipt" id="ipt" value="" />
			<ul id="list">
				<!--<li>12306</li>
				<li>hao123</li>-->
			</ul>
		</div>
		<script src="ajax.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			var ipt = document.getElementById(‘ipt‘);
			var list = document.getElementById(‘list‘);
			ipt.onkeyup = function() {
				list.innerHTML = ‘‘;
				ajax(‘baidu.php?wd=‘+ipt.value+‘&_=‘+new Date().getTime(),function(str) {
					var json = JSON.parse(str);
					for(var i = 0; i < json.s.length; i ++) {
						list.innerHTML += ‘<li>‘+json.s[i]+‘</li>‘;
					}
				});
				/*ajax(‘baidu.php?wd=‘+ipt.value+‘&t=‘+new Date().getTime(),function (str){
					var json=JSON.parse(str);
					for (var i = 0; i < json.s.length; i++) {
						list.innerHTML+=‘<li>‘+json.s[i]+‘</li>‘;
					};
				});*/
			}
		</script>
	</body>
</html>

  PHP代码:

<?php
	header("Access-Control-Allow-Origin:*");
	$url=‘http://suggestion.baidu.com/su?wd=‘;//由服务器来获取数据
	function getJSONStr($str){
		return substr($str,17);
	}

	function crul($key){
		global $url;
		$data = file_get_contents($url.$key);
		$data = getJSONStr($data);
		$data = str_replace("{q:\"","",$data);
		$data = str_replace("\",p:","{%aaa%}",$data);
		$data = str_replace(",s:[","{%aaa%}",$data);
		$data = str_replace("]});","",$data);
		$arr = explode("{%aaa%}",$data);
		$res = array();
		$res[‘q‘] = iconv("GB2312","UTF-8",$arr[0]);

		if ($arr[1] == ‘true‘){
			$arr[1] = true;
		}else{
			$arr[1] = false;
		}

		$res[‘p‘] = $arr[1];

		if (strlen($arr[2])>0){
			$arr[2] = substr($arr[2],1,-1);
			$arr[2] = str_replace("\",\"",",",$arr[2]);
			$arr[2] = iconv("GB2312","UTF-8",$arr[2]);
		}

		$res[‘s‘] = explode(‘,‘,$arr[2]);
		echo json_encode($res);//json_encode()转换成json字符串
	}

	$key = $_REQUEST[‘wd‘];
	crul($key);
?>

  

时间: 2024-08-06 07:20:59

百度搜索效果(服务器来获取数据)的相关文章

百度搜索效果(页面传来数据地址,由服务器去获取)

百度搜索效果(页面传来数据地址,由服务器去获取): <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>页面传来数据地址,由服务器去获取</title> <style type="text/css"> * { margin: 0; padding: 0; list-style: none; } #box { widt

Android:解决客户端从服务器上获取数据乱码的方法

向服务器发送HTTP请求,接收到的JSON包为response,用String content = EntityUtils.toString(response.getEntity(),"utf-8");解码还是出现了中文乱码,在后面加了 String name = new String(response.getBytes("iso-8859-1"), "UTF-8"); 也无济于事.想到服务器好像是用URLENCODER编了码的,怀着试一试的态度

Http Get 从服务器中获取数据 存储到本地

package com.http.get; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import org.apache.http.message.BasicNameValu

下拉插件 (带搜索) Bootstrap-select 从后台获取数据填充到select的 option中 用法详解

今天收到了客户的需求,要求在新增停车场ID的时候要从数据库查出来对应的停车场名称然后显示在界面上.保存的时候按照停车场ID进行保存. 自己首先把后台的部分写完了,测试了接口数据.成功的拿到了ajax数据. 接下来,自己用了select下拉标签和js函数进行填充后台传过来的数据. 经过自己的不断百度和参考别人的博客,试了很多次终于成功的调试出了想要的结果. 特来博客记录一下,也分享一下开心的心情. (一)首先引入样式和JS文件 样式文件和JS下载放到本地最好,因为放到本地自己可以修改一些东西. 在

客户端表单提交数据方式与服务器获取数据

表单提交数据的两种方式 表单form的提交有两种方式,一种是get的方法,通过超级链接后面的参数提交过来,一种是post ,通过Form表单提交过来. post方式: <form id="form1" name="form1" method="post" action="login.aspx"> <table width="501" border="0" align=&

你可能用到的百度地图效果(附源码)

这段时间需要实现百度地图的一些展示效果,虽然最终效果做出来了,可是这中间也走了很多的弯路,希望有用到的可以直接拿来用,少走一些弯路.百度地图为开发者提供了一系列的接口,点百度接口去百度接口.本文主要用到了以下几个效果: 1.热力图显示 2.自定义图标的聚合显示 3.云麻点显示 热力图显示 百度地图热力图是通过设置热力图半径.颜色.透明度等参数直观展示数据分布情况,而我这段时间所做的,就是通过一段时间内的订单数量,再结合经纬度,在地图上显示热力分布图.百度地图官方的API给的示例很Easy,创建地

Solr(五)Solr实现简单的类似百度搜索高亮功能-2代码

Solr高亮 一 在配置文件中,配置支持Ik分词器的Field 修改文件: cd /usr/local/tomcat/apache-tomcat-8.5.13/solr_home/Test/conf/vi managed-schema 红色部分是支持Ik分词器高亮显示的Field 二 配置完成之后,重启Tomcat,编写代码进行测试,对于环境搭建本文不做过多赘述. 1 与Solr服务器连接获取数据的类SolrRepository package com.sgcc.ge.solr; import

百度搜索关键词上线大家快点踊跃使用吧

近日,百度站长平台对百度搜索关键词工具进行了全面的升级,统计数据越来越精细,指标描述也越来越亲民.对于广大SEOer来说,长期总结观察这些百度数据,对于更好的了解其站点优化情况,对于制定其未来的关键词优化方案都大有裨益.可以说,新的数据数量级别和指标描述的改变,也标志着百度正逐步将加快其完善算法的步伐,大家有望在未来享受更公正的优化排名规则. 这次,百度主要通过热门关键词和热门页面来描述网站的受欢迎状况.注意,所谓的热门关键词和热门页面,是针对您自己的网站而言的,不具有绝对的统一性.您网站通过哪

Android studio 百度地图开发(8)地图已标记POI点和搜索POI点的获取和利用

一简要描述 二地图中已标记POI点 1接口 2MapPoi 类 3获取POI 三搜索关键词获取POI点 描述 1combaidumapapisearchpoi 接口OnGetPoiSearchResultListener PoiResult类 PoiInfo类 搜索POI 2combaidumapapisearchsug 接口 SuggestionResultseggestionInfo 联想搜索 四搜索效果 1联想搜索效果 2直接搜索效果 3选择一条联想搜索结果 五总结 一.简要描述 百度地图