É possível passar o usuário e senha de um sistema PHP diretamente pela URL, no formato:
https://usuario:senha@www.exemplo.com
Porém, há algumas bibliotecas (como a libcurl) que não aceitam receber usuário e senha pelo endereço. É preciso separá-los.
Seguem duas funções que fazem essa separação, retornando os trechos distintos da URL, são elas:
- extrair_User_Pass que retorna “usuario:senha”
- extrair_URL que retorna “https://www.exemplo.com”
function extrair_User_Pass($URL) { // Inverte a string, pega tudo entre o primeiro // '@' e as '//' e joga no Array "$arr1" preg_match("'@.*\b//'",strrev($URL),$arr1); // Converte a String em "$arr1[0]" em um array, // inverte sua ordem e armazena em "$arr1" $arr1 = array_reverse(str_split($arr1[0])); // Retira o '@' e as '//' array_shift($arr1); array_shift($arr1); array_pop($arr1); return implode($arr1); } function extrair_URL($URL) { return preg_replace("/".extrair_User_Pass($URL)."@/","",$URL); }