2016-10-13 3 views
1

Я хочу быть уверенным, что заголовок Content Type для запроса является application/json, как я могу работать с Slim framework?PHP Тонкий, как проверить, является ли запрос заявкой/json

Это не относится:

$contentType = $app->request->getContentType(); 
if(strtolower($contentType)!="application/json") 
      throw new AppException("Request must have application/json content type"); 

, поскольку тип контента может содержать кодировки информации и так далее ...

+1

Почему вы не просто проверить наличие 'приложения/json' подстроки в этом заголовке? –

+0

Я не знал, достаточно ли этого 0t – Tobia

ответ

1

Вы можете проверить заголовок вместо использования короткозамкнутого

$cType = $app->request->headers('Content-Type'); 
if (strpos('application/json', $cType) !== false) { 
    //is json 
} 
+1

У вас наверняка есть аргументы в 'strpos'. Вы хотите искать '$ cType' для' application/json', а не наоборот. Ваш метод не работает на 'application/json; charset = UTF-8'. Ссылка: http://php.net/manual/en/function.strpos.php –

0

Для людей, которые ищут решение, которое работает в любой ситуации, Илья Москвин был прав, аргументы включаются в ответ geggleto. Вот пример кода:

$contentType = $request->getContentType(); 
if (strpos($contentType, 'application/json') !== false) { 
    //is json 
} 

Вы можете использовать stripos вместо которой это не чувствительны к регистру, но менее производительным или применить strtolower к $contentType