Пошук місця призначення перенаправлення за допомогою PHP
Нещодавно я працював над проектом, який спілкувався зі стороннім API, який, як і багато інших API, надсилає багато даних, частина яких містить URL-адресу продукту, пов’язаного з API.
Справа в API, яку повертали, полягала в неналежній цільовій URL-адресі. Натомість це була URL-адреса, яка зрештою перенаправляла на іншу URL-адресу.
Тож уявіть, що ви переходите, скажімо, на acme.site-info.com і отримуєте його напряму на acme.com. Ми весь час робимо це вручну, але мені потрібно було отримати фактичний або кінцевий пункт призначення прямого посилання з URL-адреси.
І знайти призначення перенаправлення за допомогою PHP легко; однак це передбачає наявність лише одного перенаправлення.
Тим не менш, ось як це зробити.
Зауважте, що наступне припущення передбачає, що ви знайомі з cURL.
А якщо ні, то скористатися функцією досить просто.
curl використовується в командних рядках або сценаріях для передачі даних. Він також використовується в автомобілях, телевізорах, маршрутизаторах, принтерах, аудіообладнанні, мобільних телефонах, планшетах, телевізійних приставках, медіаплеєрах і є магістралью передачі Інтернету для тисяч програмних програм, які щодня впливають на мільярди людей.
Крім того, посібник із PHP містить багато інформації про це , яку ви можете переглянути за потреби (і, ймовірно, вона вам також знадобиться в майбутньому).
У будь-якому випадку, ось код із невеликим поясненням після коду :
Функція робить наступне:
- приймає URL-адресу, надану API,
- отримує заголовки із запиту до URL-адреси за допомогою cURL,
- надає заголовки, які ми можемо прочитати та отримати URL-адресу
Зауважте також, що я розділяю URL-адресу на основі скісної риски, щоб я міг читати лише домен, оскільки мене не хвилює ні про що після основного домену (тому, якщо домен має розширення index .php, за замовчуванням. aspx розширення тощо), то я можу використовувати його за потреби у своїй роботі.
По-друге, зауважте, що я не знаю, чи працюватиме це більше, ніж один стрибок. Отже, якщо у вас кілька перенаправлень, ви можете повторити цю функцію кілька разів. Я не знаю, але я вважав, що це варто згадати.