Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP有效http状态_Php - Fatal编程技术网

PHP有效http状态

PHP有效http状态,php,Php,在我的网站上,用户可以在标准文本输入字段中输入HTTP状态码。i、 e、200、400、404、403等 有没有办法检查HTTP状态码是否有效。例如,如果用户输入“123”,它将返回false。我现在除了做一个大的丑陋的if或switch语句之外,想不出或者找不到别的方法 在PHP中没有内置函数来实现这一点,但是与if或switch语句相比,检查的一种不太详细的方式可能是使用数组: $validStatusCodes = [200, 201, 202, ...]; if (in_array($

在我的网站上,用户可以在标准文本输入字段中输入HTTP状态码。i、 e、200、400、404、403等


有没有办法检查HTTP状态码是否有效。例如,如果用户输入“123”,它将返回false。我现在除了做一个大的丑陋的if或switch语句之外,想不出或者找不到别的方法

在PHP中没有内置函数来实现这一点,但是与
if
switch
语句相比,检查的一种不太详细的方式可能是使用数组:

$validStatusCodes = [200, 201, 202, ...];

if (in_array($submittedStatusCode, $validStatusCodes)) {
    // Ok
} else {
    // Not ok
}
根据以下
HTTP/1.1
状态代码有效:

$status_code = array("100","101","200","201","202","203","204","205","206","300","301","302","303","304","305","306","307","400","401","402","403","404","405","406","407","408","409","410","411","412","413","414","415","416","417","500","501","502","503","504","505");

if(in_array("404", $status_code)){
    echo "valid";
  }else{
    echo "invalid";
  }
对于使用Symfony或Laravel的用户,可以执行以下操作:

use Illuminate\Http\Response;

function is_valid_http_status(int $code) : bool {
    return in_array($code, array_keys(Response::$statusTexts));
} 
假设
响应
是以下情况之一:

  • Symfony\Component\HttpFoundation\Response
  • 照亮\Http\Response
在上,您可以找到带有大多数状态代码的交换机