Eu tenho um campo de formulário HTML $_POST["url"]
com algumas seqüências de URL como o valor. Os valores de exemplo são:
https://example.com/test/[email protected] https://example.com/test/1234?basic=2&[email protected] https://example.com/test/[email protected] https://example.com/test/[email protected]&testin=123 https://example.com/test/the-page-here/1234?someurl=key&[email protected]
etc.
Como posso obter apenas o email
parâmetro desses URLs / valores?
Observe que não estou recebendo essas seqüências de caracteres na barra de endereços do navegador.
php
url-parsing
Asim Zaidi
fonte
fonte
/(email=\w\@\w\.\w)/
ou mais avançadas técnicas de correspondência. Apenas dando a você a ideia. Vejapreg_match
função: php.net/manual/en/function.preg-match.phpRespostas:
Você pode usar o
parse_url()
eparse_str()
para isso.Se você deseja obter o
$url
dinamicamente com PHP, dê uma olhada nesta pergunta:Obter o URL completo em PHP
fonte
Todos os parâmetros posteriores
?
podem ser acessados usando o$_GET
array. Assim,extrairá os e-mails dos URLs.
fonte
https://[email protected]
$email = $_GET['email']; $email === '[email protected]';
Use os métodos parse_url () e parse_str () .
parse_url()
analisará uma string de URL em uma matriz associativa de suas partes. Como você deseja apenas uma parte da URL, é possível usar um atalho para retornar um valor de sequência com a parte desejada. Em seguida,parse_str()
criará variáveis para cada um dos parâmetros na string de consulta. Não gosto de poluir o contexto atual, portanto, fornecer um segundo parâmetro coloca todas as variáveis em uma matriz associativa.fonte
Use
$_GET['email']
para parâmetros em URL. Use$_POST['email']
para dados publicados no script. Ou use_$REQUEST
para ambos. Além disso, como mencionado, você pode usar aparse_url()
função que retorna todas as partes da URL. Use uma parte chamada 'query' - lá você pode encontrar o seu parâmetro de email. Mais informações: http://php.net/manual/en/function.parse-url.phpfonte
address bar
. Esses URLs são apenas stringsIN
do código.você pode usar o código abaixo para obter o endereço de e-mail depois? no URL
fonte
Como mencionado em outra resposta, a melhor solução é usar
parse_url()
Você precisa usar a combinação de
parse_url()
eparse_str()
.A
parse_url()
URL de análise e retorne seus componentes para que você possa obter a string de consulta usando aquery
chave. Em seguida, você deve usarparse_str()
essa sequência de consultas de análise e retornar valores à variável.Além disso, você pode fazer esse trabalho usando o regex .
preg_match()
Você pode usar
preg_match()
para obter um valor específico da string de consulta do URL.preg_replace()
Além disso, você pode usar
preg_replace()
para fazer este trabalho em uma linha!fonte
Eu criei uma função a partir da resposta @Ruel . Você pode usar isto:
Exemplo:
Graças a @Ruel
fonte
Isso está funcionando muito bem para mim usando php
fonte
fonte
Uma resposta muito mais segura que estou surpresa ainda não foi mencionada aqui:
filter_input
Portanto, no caso da pergunta, você pode usar isso para obter um valor de email a partir dos parâmetros de obtenção de URL:
$email = filter_input( INPUT_GET, 'email', FILTER_SANITIZE_EMAIL );
Para outros tipos de variáveis, você desejaria escolher um filtro diferente / apropriado , como
FILTER_SANITIZE_STRING
.Suponho que essa resposta faça mais do que exatamente o que a pergunta pede - obtendo os dados brutos do parâmetro URL. Mas este é um atalho de uma linha com o mesmo resultado:
Poderia muito bem adquirir o hábito de pegar variáveis dessa maneira.
fonte
No Laravel, eu uso:
fonte
Função dinâmica que analisa o URL da string e obtém o valor do parâmetro de consulta passado no URL
Função de chamada para obter resultado
fonte
Para obter parâmetros da string de URL, usei a seguinte função.
Se houver muitas cadeias de URL, você poderá usar o loop para obter o parâmetro 'email' de todas essas cadeias de URL e armazená-las na matriz.
fonte