Кажется, нет причин для этого. Вы должны установить второй параметр на ненулевое значение, чтобы получить массив 1 :
get_headers($url, 1);
Если вы это сделаете, он должен запускаться одинаково в любом месте, если только в самом PHP или на проблемном сервере нет ошибки (оба случая редки для случайного пользователя).
Обратите внимание, что get_headers
следует за (несколькими) перенаправлениями и сохраняет заголовки каждого перенаправления в виде массива 2 :
array(11) {
[0]=>
string(30) "HTTP/1.0 301 Moved Permanently"
["Location"]=> string(22) "http://www.google.com/"
["Content-Type"]=> array(2) {
[0]=> string(24) "text/html; charset=UTF-8"
[1]=> string(29) "text/html; charset=ISO-8859-1"
}
...
Конкретные значения заголовков для перенаправлений сохраняются последовательно, поэтому похоже, что Content-Type[0]
может быть связан с любым из Location
s, что делает формат массива непригодным для правильного получения заголовков каждого из перенаправлений. Формат строкового массива не намного лучше, так как вам нужно будет проанализировать заголовки. Но с помощью формата массива вы можете определить последнее местоположение и т. Д.