导航:首页 > 编程语言 > php返回http状态码

php返回http状态码

发布时间:2025-05-24 16:32:28

1. php获取客户端状态码返回200或404

今天做了个程序,需要取得HTTP状态码,于是继续搜索无力,果然中文资源非常少,于是去查了PHP的手册。
找到了curl这个小工具。
使用curl需要在php.ini中设置启用才行 >< Windows的服务器中,打开php.ini,找到:
extension=php_curl.dll
去掉前面的注释既可 。

实现代码如下:

$curl = curl_init();
$url=’http://www.smdcn.net’;
curl_setopt($curl, CURLOPT_URL, $url); //设置URL
curl_setopt($curl, CURLOPT_HEADER, 1); //获取Header
curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,我们只是需要Head
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //数据存到成字符串吧,别给我直接输出到屏幕了
$data = curl_exec($curl); //开始执行啦~
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT码哦~
curl_close($curl); //用完记得关掉他

完成~~

2. Http协议状态码理解(1**~5**)

通俗的来说,nginx作为一个代理服务器,将请求转发到其他服务器或者php-cgi来处理,当nginx收到了无法理解的响应时,就返回502。当nginx超过自己配置的超时时间还没有收到请求时,就返回504错误。

php-fpm没有启动

我们关闭php-fpm。

刷新页面,发现返回502错误:

nginx的error_log:

php-fpm请求超时

我们首先将php-fpm.conf中的 max_terminate_request 改成5s:

在php脚本中添加如下语句:

刷新页面,发现返回502错误:

查看php-fpm的error_log,有如下日志:

查看nginx的error_log,有如下日志:

504即nginx超过了自己设置的超时时间,不等待php-fpm的返回结果,直接给客户端返回504错误。但是此时php-fpm依然还在处理请求(在没有超出自己的超时时间的情况下)。

这里有三个相关的配置:

这里我们将fastcgi_read_timeout设置为1s,后端还是延迟20s,观测效果:

nginx返回504错误。

3. PHP动态页面如何让页面返回404状态码

header("HTTP/1.0 404 Not Found");

这个我刚试了下是可以的,应该是你这句话不是在页面的顶部,而是中间,顶部默认就输出一个200了。

4. php 301返回302状态吗

http状态码 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
http状态码 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

5. PHP写的页面无法访问,报HTTP500错误,这个是怎么回事

原因百分之80来自于网站根目录的config.php文件中资料库相关设定错误,这种错误排除,只要检查一下config.php文件中的服务器和资料库名称、使用者名称、密码,还有资料库前缀字串,再来就是档案文件路径,只要是多一个或少一个符号、大小写错误、空格…绝对会赏你一个[HTTP 500 内部服务器发生错误]的排头吃。

再来百分之10的错误来自于网站程式码设计错误也会出现[HTTP 500 内部服务器发生错误]的页面,这个错误一来可以从视窗工具=>网际网路选项=>进阶=>去掉勾选:显示易懂的HTTP错误讯息,二来可以从网站根目录的error_log纪录中看出一些端倪,再来排除,还有百分之5刚好碰上访问的网站在维护,最多的例子是网站升级和网站迁移。
将错误讯息显示出来。

而显示的方法有两种,一种是设定php.ini;另一种是透过程式码开启,操作方法请参考以下:
一、设定php.ini

1.首先开启php.ini档

2.使用“Ctrl”+“F”搜寻【display_errors】

3.将“display_errors=Off”改为“display_errors=On”

4.重新启动Apache

5.重启开启网页

二、透过程式码开启

1.开启显示“服务器错误(500)”的程式档

2.于程式档加入以下程式码

ini_set("display_errors", "On"); // 设定是否显示错误( On=显示, Off=隐藏 )

3.重启开启网页

6. 大神们 thinkphp怎么设置404页面 谢谢

在ACTION中新建一个文件EmptyAction.class.php,文件中的代码如下:


<?php
classEmptyActionextendsAction{
function_empty(){
header("HTTP/1.0404NotFound");//使HTTP返回404状态码
$this->display("Public:404");
}
}
?>


在apache中设置


在你的网站配置中加入ErrorDocument404/404.html即可。


在iis中设置


IIS/ASP.net下设置404错误页面


打开apachehttpd.conf配置文件或者新建.htaccess配置文件


首先,修改应用程序根目录的设置,打开“web.config”文件编辑,在其中加入如下内容:

<configuration>
<system.web>
<customErrorsmode=”On”defaultRedirect=”error.asp”>
<errorstatusCode=”404″redirect=”notfound.asp”/>
</customErrors>
</system.web>
</configuration>


注:上文例中“error.asp”为系统默认的404页面,“notfound.asp”为自定义的404页面,使用时请修改相应文件名。

然后,在自定义的404页面“notfound.asp”中加入:

<%

Response.Status=“404NotFound”

%>


php404

if(如果没有任何结果)

{

//以前是仅仅显示“该帖子已经不存在”的提示,现在是:

require(’/404.php’);

@header(’HTTP/1.1404NotFound’);

@header(’Status:404NotFound’);

exit;

}

阅读全文

与php返回http状态码相关的资料

热点内容
电子风车电路的单片机程序 浏览:890
如何使用景安云服务器 浏览:232
西门子300pdf 浏览:808
获取前100个素数python 浏览:411
QD45压缩机 浏览:198
qq密码暴力查看器解压密码 浏览:455
苹果app手机怎么退款流程 浏览:108
程序员用87还是104 浏览:550
如何查询mt4服务器ip地址 浏览:671
光伏逆变器控制算法 浏览:562
alevelpdf 浏览:238
google浏览器无法定位服务器地址 浏览:471
服务器通道如何分区 浏览:528
cat命令显示用户主目录中的文件 浏览:604
程序员哪有可爱 浏览:837
郴州app开发哪里好 浏览:943
一只眼弱视程序员 浏览:578
android全屏无标题 浏览:117
梁的非加密区箍筋计算 浏览:966
linux7关闭防火墙 浏览:813