Es gibt keine Umgebungsvariable oder irgendeine serverunabhängige Methode, um die verfügbaren Anforderungsmethoden zu ermitteln, die PHP kennen würde. Um diese Entscheidung treffen zu können, müssten Sie PHP als Client einrichten, indem Sie cURL verwenden, um verschiedene Anfragen an den Server zu stellen, um zu sehen, ob sie erlaubt sind. So etwas wie dieses (nicht getestet):
$methods = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS', 'CONNECT');
foreach ($methods as $method) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_exec($ch);
if (curl_errno($ch) == 405) {
echo "Method $method not allowed.";
} else {
echo "Method $method allowed.";
}
curl_close($ch);
}
Insbesondere habe ich diese, um sicherzustellen, nicht getestet, dass 405 konsequent zurückgeführt wird, wenn auf einem Server aufrufen, die nicht die angeforderte Methode nicht gestattet. Du solltest das also überprüfen. Aber das sollte dir eine gute Idee geben. Da Sie sieben HTTP-Aufrufe ausführen, wenn diese ausgeführt wird, möchten Sie sie möglicherweise nicht bei jedem Laden der Seite ausführen, sondern nur gelegentlich und dann die Ergebnisse zwischenspeichern. Es ist unwahrscheinlich, dass sich die zulässigen Methoden häufig ändern.
Sie können sich https://httpd.apache.org/docs/2.4/mod/mod_allowmethods.html ansehen. Wenn es nicht verwendet wird, sieht es überhaupt nicht wie Apache-Grenzen aus. –