使用Frameset来实现页面包含自适应

我们经常有这样的需求,需要通过自己的域名来包装某个专题或者是合作方的站点,比如:为了方便记忆希望http://topic.hmzxin.com/acts/2009_girl/index.php 推广时使用girl.cdqss.com这样的域名。这通常需要两个步骤:

1、解析域名到需要包含的站点;

2、合作方对服务器进行配置以便支持新的站点。

这种方式多少还是有些麻烦,有些时候这种方式根本就无法实现,比如:我们开通个人空间允许用于导入外部的网站,然后统一通过我们的个性域名进行访问,如:yemaozi.cdqss.com是个人空间,yemaozi.cdqss.com/taobao指向我的淘宝店,yemaozi.cdqss.com/paipai指向我的拍拍店等等,我们不可能让淘宝和拍拍进行相应的配置。所以,我们使用变通的解决办法,把域名解析到我们自己的服务器,然后根据访问的目录动态的导入不同的地址,在站点下建一个文件内容如下:

  

<?php
	$host = $_SERVER['HTTP_HOST'];
	$host_match_result = preg_match('/([^\.]+)\.cdqss\.com/i', $host, $host_matches);

	//截取店铺类型
	$url = 	$_SERVER['REQUEST_URI'];
	$url_match_result = preg_match('/([^\/]+)/i', $url, $url_matches);
	
	//安全检查并获取用户名,正确的访问例子为:http://yemaozi.cdqss.com/taobao
	if(!$host_match_result || !$url_match_result){
		header('Location:http://www.cdqss.com');
		exit();
	}
	$username = addslashes($host_matches[1]); //执行转义操作;
	$shoptype = addslashes($url_matches[1]); //执行转义操作

	//查询对应的店铺地址
    //$row代表查询的结果
	//$url = $row['linkurl']; ,设$row['linkurl'] = 'http://www.taobao.com'
	$url = 'http://www.taobao.com';
	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $username;?> - 的个性店铺</title>
</head>

<frameset frameborder="no" border="0" framespacing="0">
  <frame src="<?php echo $url;?>" name="topFrame" scrolling="yes" noresize="noresize" id="topFrame" title="topFrame" />
</frameset>
<body>
</body>
</html>

这时当我们访问服务器时,就已经使用我们的域名进行访问了。Frameset可以很好的完成页面的自适应。其实使用iframe也可以实现,但是iframe在自适应的处理上非常麻烦,进行跨域访问时会有安全错误提示,所以解决很麻烦,感兴趣的可以参考下面的文章:

iframe全跨域高度自适应解决方案

 

再谈iframe自适应高度

 

Iframe高度自适应(兼容IE/Firefox、同域/跨域)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值