Как лучше всего использовать Guzzle для проверки наличия удаленного файла?

Я хотел бы использовать Guzzle, чтобы проверить, существует ли удаленный файл.

Это пример того, как я сейчас проверяю:

/**
* @return boolean
*/
function exists()
{
// By default get_headers uses a GET request to fetch the headers.
// Send a HEAD request instead
stream_context_set_default(
array(
'http' => array(
'method' => 'HEAD'
)
)
);

// Get the file headers
$file_headers = @get_headers($this->file);

// Check file headers for 404
if($file_headers[0] == 'HTTP/1.1 404 Not Found')
return false; // File not available.

return true; // File is available!
}

Однако, так как я уже использую Guzzle в другом месте, я думаю, я мог бы сделать это красивее и более читабельным.

Правильно ли я так думаю? Как бы я это сделал?

6

Решение

Мне удалось найти часть ответа в документах. Жадность — Методы запроса

В сочетании с суть имеет аналогичную функцию, которая проверяет статус 404.

/**
* @return boolean
*/
function exists()
{
$client = new GuzzleHttp\Client();

try {
$client->head($this->file);
return true;
} catch (GuzzleHttp\Exception\ClientException $e) {
return false;
}
}
10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]