diff --git a/modules/openapi-generator/src/main/resources/php/HeaderSelector.mustache b/modules/openapi-generator/src/main/resources/php/HeaderSelector.mustache index 76f82b67dbe..9b9a281b625 100644 --- a/modules/openapi-generator/src/main/resources/php/HeaderSelector.mustache +++ b/modules/openapi-generator/src/main/resources/php/HeaderSelector.mustache @@ -72,8 +72,8 @@ class HeaderSelector { if (count($accept) === 0 || (count($accept) === 1 && $accept[0] === '')) { return null; - } elseif (preg_grep("/application\/json/i", $accept)) { - return 'application/json'; + } elseif ($jsonAccept = preg_grep('~(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$~', $accept)) { + return implode(',', $jsonAccept); } else { return implode(',', $accept); } diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php b/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php index b8b298ec95c..af9dda69434 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php @@ -82,8 +82,8 @@ class HeaderSelector { if (count($accept) === 0 || (count($accept) === 1 && $accept[0] === '')) { return null; - } elseif (preg_grep("/application\/json/i", $accept)) { - return 'application/json'; + } elseif ($jsonAccept = preg_grep('~(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$~', $accept)) { + return implode(',', $jsonAccept); } else { return implode(',', $accept); } diff --git a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php index b8b298ec95c..af9dda69434 100644 --- a/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php +++ b/samples/openapi3/client/petstore/php/OpenAPIClient-php/lib/HeaderSelector.php @@ -82,8 +82,8 @@ class HeaderSelector { if (count($accept) === 0 || (count($accept) === 1 && $accept[0] === '')) { return null; - } elseif (preg_grep("/application\/json/i", $accept)) { - return 'application/json'; + } elseif ($jsonAccept = preg_grep('~(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$~', $accept)) { + return implode(',', $jsonAccept); } else { return implode(',', $accept); }