Eu quero usar o PHP para verificar se a string armazenada na $myoutput
variável contém uma sintaxe de link válida ou é apenas um texto normal. A função ou solução que estou procurando deve reconhecer todos os formatos de links, incluindo os com parâmetros GET.
Uma solução, sugerida em muitos sites, para realmente consultar a string (usando CURL ou file_get_contents()
função) não é possível no meu caso e eu gostaria de evitá-la.
Pensei em expressões regulares ou em outra solução.
Respostas:
Você pode usar um validador de filtro nativo
Exemplo:
fonte
FILTER_VALIDATE_URL
não validará o protocolo de um URL. Entãossh://
,ftp://
etc vai passar.Aqui está o melhor tutorial que encontrei por lá:
http://www.w3schools.com/php/filter_validate_url.asp
Sinalizadores possíveis:
fonte
!filter_var(...) === false
==>filter_var(...) === true
ou apenasfilter_var(...)
. :)ttps://www.youtube.com
como válidaO uso de filter_var () falhará para URLs com caracteres não-ascii, por exemplo ( http://pt.wikipedia.org/wiki/Guimarães ). A função a seguir codifica todos os caracteres não-ascii (por exemplo, http://pt.wikipedia.org/wiki/Guimar%C3%A3es ) antes de chamar filter_var ().
Espero que isso ajude alguém.
fonte
fonte
Pessoalmente, eu gostaria de usar expressões regulares aqui. O código abaixo funcionou perfeitamente para mim.
fonte
Dados problemas com filter_var () que precisam de http: //, eu uso:
$is_url = filter_var($filename, FILTER_VALIDATE_URL) || array_key_exists('scheme', parse_url($filename));
fonte
ttps://www.youtube.com
como válidaVocê pode usar esta função, mas ela retornará false se o site estiver offline.
fonte
Na verdade ... filter_var ($ url, FILTER_VALIDATE_URL); não funciona muito bem. Quando você digita um URL real, ele funciona, mas verifica apenas http: //; portanto, se você digitar algo como " http: // weirtgcyaurbatc ", continuará dizendo que é real.
fonte
ttps://www.youtube.com
como válidoOutra maneira de verificar se o URL especificado é válido é tentar acessá-lo; a função abaixo buscará os cabeçalhos do URL especificado, isso garantirá que o URL seja válido E o servidor da web esteja ativo:
fonte
Deparei com este artigo a partir de 2012. Ele leva em conta variáveis que pode ou não ser URLs apenas simples.
O autor do artigo, David Müeller , fornece essa função que ele diz: "... pode valer a pena [sic]", juntamente com alguns exemplos
filter_var
e suas deficiências.fonte
se alguém estiver interessado em usar o cURL para validação. Você pode usar o seguinte código.
fonte