Sie können dies nicht mit PHP so tun. Mit time()
oder microtime()
können Sie nur die komplette Zeit abrufen, die ein oder mehrere Befehle benötigt haben.
Sie benötigen ein Tool, mit dem Sie Zugriff auf die Netzwerkschichtdaten haben. cURL kann das für Sie tun, aber Sie müssen enable php curl, wenn es nicht schon fertig ist.
PHP kann dann das Ergebnis übernehmen und verarbeiten.
<?php
// Create a cURL handle
$ch = curl_init('http://www.example.com/');
// Execute
curl_exec($ch);
// Check if any error occurred
if (!curl_errno($ch)) {
$info = curl_getinfo($ch);
echo 'Took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "\n";
}
// Close handle
curl_close($ch);
Sie haben eine Reihe von Informationen in $info
wie
- "filetime"
- "TOTAL_TIME"
- "namelookup_time"
- "connect_time"
- "Vorübertragung_Zeit "
- "starttransfer_time"
- "redirect_time"
Die komplette Liste gefunden werden konnte here
Die "Wait" Zeit der starttransfer_time
sein sollte - pretransfer_time
, so in Ihrem Fall benötigen Sie:
$wait = $info['starttransfer_time'] - $info['pretransfer_time'];
vielleicht möchten Sie sehen [micro()] (http://php.net/manual/en/function.microtime.php) statt 'time()'. – CD001
Mögliche Duplikate von [So erhalten Server-Antwortzeit mit PHP] (https://stackoverflow.com/questions/34059737/how-to-get-server-response-time-using-php) –
Wenn Sie feinkörnig wollen Statistiken wie Zeit bis zum ersten Byte, müssen Sie eine niedrigere Bibliothek wie [Curl] (http://php.net/manual/en/book.curl.php) verwenden. Die 'curl_get_info'-Funktion wird das haben, was Sie brauchen. – iainn