php header中301/404跳转要注意事项详解
301跳转
代码如下 | 复制代码 |
header('HTTP/1.1 301 Moved Permanently'); |
不要漏了header(‘HTTP/1.1 301 Moved Permanently’); 不然返回不了301
404错误页面
代码如下 | 复制代码 |
header("HTTP/1.1 404 Not Found"); |
如果上面的不起作用,可以试试下面的:
代码如下 | 复制代码 |
header("Status: 404 Not Found"); |
所以为了万无一失,可以两句都写上:
代码如下 | 复制代码 |
header("HTTP/1.1 404 Not Found"); |
小提示,
如果写好代码之后我们必须使用站长工具来测试一下返回的状态是不是我们想要的哦。
攒,顶,踩功能主要用于评论中这里我们来做一个简单基于jquery ajax与php的mysql实现的攒,顶,踩功能,文章最后附了源码下载。php应用越来越多,也越来越广泛,为了增加网站的丰富多彩,从而出现了很多新的技术。ajax是现代网站中不能缺少的一项技术,他可以异步刷新数据,而实现很多效果,比如刷新验证码,微博中的攒功能,都是运用这个。
本次攒功能的效果图:
主页文件(index.php):
代码如下 | 复制代码 |
<script type="text/javascript" src="/Public/js/jquery.min.js"></script> <script type="text/javascript" src="finger_ajax.js"></script> <?php header("Content-type:text/html;charset=utf-8"); include "finger_ajax.php";
$res = mysql_query($sql,$link); while($row = mysql_fetch_array($res)){ echo "<p>".$row['title']." <a href='#' onclick='finger(".$row['id'].")'><img src='finger.jpg'/>攒一下(<span class='finger".$row['id']."'>".$row['finger']."</span>)</a></p> "; } ?> |
处理ajax请求及配置信息文件(finger_ajax.php):
代码如下 | 复制代码 |
<?php /**"攒" 功能 响应ajax请求*/ //配置 $dbHost = "localhost"; $dbUser = "root"; $dbPass = "dddddd"; $dbName = "test"; $dbCharset = "utf8";
mysql_query("set names ".$dbCharset); mysql_select_db($dbName); // End
if(!empty($_POST['id'])){ $id = $_POST['id']; //“攒”加1 $sql = "update finger_ajax set finger=finger+1 where id=$id;"; if(mysql_query($sql,$link)){ echo "ok"; }else{ echo "failed"; } } ?> |
js文件(finger_ajax.js):
//攒 js
代码如下 | 复制代码 |
function finger(topic_id){ $.post("finger_ajax.php", { "id": topic_id }, function(data){ if(data=="ok"){ alert("感谢您的支持!"); }else{ alert("对不起,失败了!"); } }, "text"); //获取当前“攒”的次数并加1 var finger = parseInt($(".finger"+topic_id).html())+1; //更新“攒”的次数 $(".finger"+topic_id).html(finger); } |
数据库代码(finger_ajax.sql):
代码如下 | 复制代码 |
CREATE TABLE `finger_ajax` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL DEFAULT '', `finger` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-- Records of finger_ajax -- ---------------------------- INSERT INTO `finger_ajax` VALUES ('1', '今天天气还不错哦!去做点什么好呢?', '10'); INSERT INTO `finger_ajax` VALUES ('2', '欢迎来到 www.111cn.net,国庆将至,祝大家国庆节快乐!!', '3'); |
原文地址: php ajax实现攒,顶,踩的功能 http://file.111cn.net/upload/2013/12/a63.zip
在php获取一个url地址我会使用到超级全局变量$_SERVER,他包括了各种参数获取,如HTTP_HOST、PHP_SELF、QUERY_STRING等等,这里就不介绍了。
PHP获取URL的几个函数介绍
代码如下 | 复制代码 |
<?php |
把上面的几个函数组合一下,即可得到完整的URL地址
代码如下 | 复制代码 |
<?php function curPageURL() if ($_SERVER["HTTPS"] == "on") if ($_SERVER["SERVER_PORT"] != "80") |
定义该函数之后就可以直接调用了:
代码如下 | 复制代码 |
<?php |
PHP纯代码跳转
代码如下 | 复制代码 |
<?php |
但是这种返回的状态码是302
如果要实现301跳转的话,需要在之前设置下状态码
代码如下 | 复制代码 |
<?php |
更简单的PHP跳转301代码
代码如下 | 复制代码 |
<?php $urlto='http://www.111cn.net/'; |
可能出现的问题
Warning: Cannot modify header information - headers already sent by把文件编码改成 UTF-8无BOM格式 可解决该问题,如果还是有问题,就检查下该代码前是否定义了字符串变量,删除这个变量再试试。
附:30*返回状态码的区别
301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:
1.301 redirect: 301 代表永久性转移(Permanently Moved),
2.302 redirect: 302 代表暂时性转移(Temporarily Moved ),
这两种转移在使用的时候有啥好处或者问题?
301 重定向是网页更改地址后对seo搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 重定向是临时性转移。
php中移动复制文件我们使用copy,下面我们来看一个简单的实例,他实现了目录与目录文件移动,希望此文章对大家帮助。
方法一,copy+unlink方式
我的思路是:移动=新建+删除。在移动之前在目标的目录新建一个文件夹,然后在把文件和目录都复制过去,最后在执行删除.
代码如下 | 复制代码 |
/** $from = rtrim(str_replace(‘//’,'/’,$from), ‘/’);//为了在linux上兼容,我们把/符号全部转换成/因为windows下面2个符号都可以的. /* $files的输出结果: Array ( [0] => . [1] => .. [2] => a [3] => b [4] => c [5] => dir [6] => dir.php [7] => dir2 [8] => dir2.php [9] => function_file.php [10] => homework.php ) if(is_dir($subFrom)){ |
方法二,rename
1.对于文件,rename可以在不同盘符之间移动.
2.对于空文件夹,rename也可以在不同盘符之间移动.但是目标文件夹的父目录必须存在.
3.对于非空文件夹,只能在同一盘符下移动.不过,1和3,应该差不多能够对付所有的应用情况了.
代码如下 | 复制代码 |
|
对于一个40M的文件,copy+unlink方式需要7.6249899864197秒,而rename方式,只需要0.024738788604736,快300倍.
例
代码如下 | 复制代码 |
<?php |
相关文章
- 这篇文章主要介绍了Element PageHeader页头的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-27
总结android studio注意事项及打不开等问题解决方法
经过一段时间的使用,总结了android studio打不开等问题的6种解决方法及android studio注意事项,希望对大家有所帮助。 1 首次运行,建立好项目需要下载一些东西,如果...2016-09-20PHP中header()函数有什么用?常见header 状态
在php中header()函数是很大的作用可以发送各种状态代码,也可以实现一些输出下载,下面我们一起来看看一些相关实例吧。 什么是头信息? 这里只作简单解释,详细的自己看...2016-11-25- 今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说文字转曲的操作方法以及注意事项,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看看吧。...2016-09-14
- 这篇文章主要介绍了微信小程序页面开发注意事项整理的相关资料,需要的朋友可以参考下...2017-05-22
- 1、检查标题。2、检查版权信息,尤其是电话号码。3、图片、文件定位问题。4、产品页面首页指向产品类别问题。5、文章页面首页指向文章类别问题。6、产品图片大小...2016-09-20
- 站改版是每个站长必然经历的过程,也是每个网站必定会发生的状态。网站希望建设越来越好改版是不可避免的,但是网站改版对于网站优化和推广来说又是一大弊端,无论是网站结...2016-10-10
- 1、尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减...2016-10-10
- php数值计算有一些结果可能并不是我们想的那样但它这样计算有自己的理论基础了,下面我们来看一篇php 总结数值计算的注意事项吧。 一:四舍五入 1.round —...2016-11-25
- 匿名函数是PHP5.3引进来了,php5.3不但引进了匿名函数还有更多更好多新的特性了,下面我们一起来了解一下PHP匿名函数与注意事项详解 PHP5.2 以前:autoload, PDO 和 My...2016-11-25
- 什么是搜索结果匹配?非常简单,我们把它分成完全匹配和部分匹配。那么究竟什么是完全匹配呢?我们先来举个例子,百度搜“seo是什么”,结果中出现红色的字就是匹配项。 ...2016-10-10
- 双引号在php使用中我们通常把它定义为字符串了,但你知道双引号在使用过程中会有一些小问题呢,那么有什么问题我们来看看 PHP很多语法特性会让攻击者有机可乘,例如PH...2016-11-25
- MYSQL到ORACLE程序迁移的注意事项 2001-09 有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随...2016-11-25
- 第一:网站别急着上线 有的童鞋网站上线就是买了空间和域名之后,将程序直接丢在空间里面,然后就是哪天有问题,就随机随地的修改;这里,我自己是不赞同的,网站买了空间之后,...2016-10-10
- 这篇文章主要介绍了BootStrap注意事项小结(五)表单的相关资料,非常不错,具有参考借鉴价值,,需要的朋友可以参考下...2017-03-13
- 本文认真总结了网站建设中我们难免犯的一些错误,希望大家做网站的时候要提高警惕。 1. “欢迎访问本站”?免了吧! 像这样没有意义的玩艺儿,包括商号...2017-07-06
- 今天笔者结合二十余年的ORACLE数据库应用开发和运维的经验教训,总结在使用ORACLE数据库环境中的应用开发中需要注意的一些注意事项,这些问题不但可以作为ORACLE数据库开发的注意事项,大多数也适用于常见的关系型数据库开发甚至非关系型数据开发。...2021-06-06
- php header后是否需要书写exit以终止程序,以前一直没有太在意,今天遇到个bug,才发现这还是个问题,特意写了段代码测试了一下,代码如下: 通常有一下三种: ...2016-11-25
- 今天文章要给大家介绍的是高端网站建设规避网站设计注意事项,让大家更好的了解网站建设,还不知道的下面就一起来看看。 现在做网站不仅仅只是做网站这样简单,如何让...2017-07-06
- ASP.NET网站部署到IIS中的关键点,本文介绍了一些ASP.NE网站在发布是需要注意事项,需要了解的朋友可以参考下...2021-09-22