Parse_url некорректно работает на промежуточном сервере

#php #parse-url

#php #синтаксический анализ-url

Вопрос:

Я столкнулся с проблемой с функцией parse_url. если я использую parse_url в своей локальной системе, я получаю следующий вывод. Используемый URL-адрес для синтаксического анализа www.youtube.com/embed/u-j1nx_HY5o

 Array
(
    [host] => www.youtube.com
    [path] => /embed/u-j1nx_HY5o
) 
 

Но я анализирую тот же URL-адрес на промежуточном сервере, что и следующий вывод.

 Array(
    [path] => //www.youtube.com/embed/u-j1nx_HY5o
)
 

ie. Я не получаю имя хоста на промежуточном сервере.

Примечание: версия PHP на промежуточном сервере — 5.3.3. Может кто-нибудь сообщить мне, почему это происходит.

Большое спасибо,

M.

Комментарии:

1. Версия PHP больше 5.4.7 ?

Ответ №1:

До версии 5.4.7 была ошибка: 5.4.7 Fixed host recognition when scheme is omitted and a leading component separator is present.

Проверьте, не ниже ли версия вашего промежуточного сервера, чем 5.4.7.

В качестве дополнительного совета: всегда используйте одну и ту же версию и конфигурацию (за исключением настроек отчетов об ошибках) во всех ваших средах.

Редактировать

Если вы не можете обновить промежуточную среду, может помочь добавление схемы в URL (например, http:// ). Также понизьте уровень вашей среды разработки до версии, работающей в промежуточной и рабочей среде.

Комментарии:

1. Спасибо, Pred, есть ли какой-нибудь способ избавиться от этой проблемы без изменения версии php при промежуточном сервере?