method - php request url




Detección del tipo de solicitud en PHP(GET, POST, PUT o DELETE) (8)

Es muy simple, simplemente use $ _SERVER ['REQUEST_METHOD'];

Ejemplo:

<?php
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
  case 'GET':
    //Here Handle GET Request 
    break;
  case 'POST':
    //Here Handle POST Request 
    break;
  case 'DELETE':
    //Here Handle DELETE Request 
    break;
  case 'PUT':
    //Here Handle PUT Request 
    break;
}
?>

¿Cómo puedo detectar qué tipo de solicitud se utilizó (GET, POST, PUT o DELETE) en PHP?


Cuando se solicita un método, tendrá una array . Así que simplemente consulte con count() .

$m=['GET'=>$_GET,'POST'=>$_POST];
foreach($m as$k=>$v){
    echo count($v)?
    $k.' was requested.':null;
}

3v4l.org/U51TE


En core php puedes hacer esto:

<?php

$method = $_SERVER['REQUEST_METHOD'];

switch ($method) {
  case 'GET':
    //Here Handle GET Request
    echo 'You are using '.$method.' Method';
    break;
  case 'POST':
    //Here Handle POST Request
    echo 'You are using '.$method.' Method';
    break;
  case 'PUT':
    //Here Handle PUT Request
    echo 'You are using '.$method.' Method';
    break;
  case 'PATCH':
    //Here Handle PATCH Request
    echo 'You are using '.$method.' Method';
    break;
  case 'DELETE':
    //Here Handle DELETE Request
    echo 'You are using '.$method.' Method';
    break;
  case 'COPY':
      //Here Handle COPY Request
      echo 'You are using '.$method.' Method';
      break;

  case 'OPTIONS':
      //Here Handle OPTIONS Request
      echo 'You are using '.$method.' Method';
      break;
  case 'LINK':
      //Here Handle LINK Request
      echo 'You are using '.$method.' Method';
      break;
  case 'UNLINK':
      //Here Handle UNLINK Request
      echo 'You are using '.$method.' Method';
      break;
  case 'PURGE':
      //Here Handle PURGE Request
      echo 'You are using '.$method.' Method';
      break;
  case 'LOCK':
      //Here Handle LOCK Request
      echo 'You are using '.$method.' Method';
      break;
  case 'UNLOCK':
      //Here Handle UNLOCK Request
      echo 'You are using '.$method.' Method';
      break;
  case 'PROPFIND':
      //Here Handle PROPFIND Request
      echo 'You are using '.$method.' Method';
      break;
  case 'VIEW':
      //Here Handle VIEW Request
      echo 'You are using '.$method.' Method';
      break;
  Default:
    echo 'You are using '.$method.' Method';
  break;
}


?>

La detección del método HTTP o el llamado REQUEST METHOD se puede hacer usando el siguiente fragmento de código.

$method = $_SERVER['REQUEST_METHOD']
if ($method == 'POST') {
    // Method is POST
} elseif ($method == 'GET') {
    // Method is GET
} elseif ($method == 'PUT') {
    // Method is PUT
} elseif ($method == 'DELETE') {
    // Method is DELETE
} else {
    // Method unknown
}

También puede hacerlo usando un switch si lo prefiere sobre la instrucción if-else .

Si se requiere un método distinto de GET o POST en un formulario html, a menudo se resuelve utilizando un campo oculto en el formulario.

<!-- DELETE method -->
<form action='' method='POST'>
    <input type="hidden" name'_METHOD' value="DELETE">
</form>

<!-- PUT method -->
<form action='' method='POST'>
    <input type="hidden" name'_METHOD' value="PUT">
</form>

Para obtener más información sobre los métodos HTTP, quisiera referirme a la siguiente pregunta de :

El protocolo HTTP PUT y DELETE y su uso en PHP


Puede obtener cualquier dato de cadena de consulta, por ejemplo, www.example.com?id=2&name=r

Debe obtener datos utilizando $_GET['id'] o $_REQUEST['id'] .

Los datos de publicación se refieren a la forma <form action='' method='POST'> debe usar $_POST o $_REQUEST .



También podemos usar el input_filter para detectar el método de solicitud y al mismo tiempo proporcionar seguridad a través del saneamiento de entrada.

$request = filter_input(INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_ENCODED);

$request = new \Zend\Http\PhpEnvironment\Request();
$httpMethod = $request->getMethod();

De esta manera también puede lograr en zend framework 2 también. Gracias.





request