Pesquisar na Comunidade
Mostrando resultados para as tags ''preg_match''.
Encontrado 1 registro
-
Então, cá estou eu tentando fazer umas expressões regulares para validação de links para mídias sociais e me esbarrei em alguns problemas a averiguação da string: A ideia é ter uma expressão para cada mídia social presente no atual momento, só aceitando uma url válida para aquela mídia. Estou com um problema em passar condicionais que quando a string entrar num determinado formato ela deve seguir exatamente o modelo válido para aquela situação. Separei cada condicional em uma linha para melhor entendimento: <?php $urlA = "https://www.facebook.com/profile.php"; // ** ERA PARA SER INVÁLIDO $urlB = "https://www.facebook.com/profile.php?id="; // ERA PARA SER INVÁLIDO $urlC = "https://www.facebook.com/"; // ** ERA PARA SER INVÁLIDO $urlD = "https://www.facebook.com/Fulano"; // Válido, está OK $urlE = "https://www.facebook.com/profile.php?id=999999999999999"; // Válido, está OK $urlF = "https://www.facebook.com"; // ** ERA PARA SER INVÁLIDO $urlG = "https://www.faceboo"; // ** ERA PARA SER INVÁLIDO if (preg_match( '/^' . '(https[\:][\/][\/]www[\.]facebook[\.]com)' // Valida o endereço oficial da mídia . '?([\/])' // Caso contenha ou não uma "/" no final da url . '?([a-zA-Z À-ú 0-9]+)' // Valida se o link do perfil segue um modelo amigável (expl: /fulano) . '|(?:profile[\.]php[\?]id[\=]([0-9]{15}))' // Nessa condicional não estou acertando . '?(.*)' // Essa também não . '$/', $urlA)) { echo 'válido'; } else { echo 'inválido'; } Como podem notar são as duas últimas condicionais que estou com problemas, que são necessárias a correta averiguação das entradas na string, mas seu as adicionar assim como está no exemplo acima tudo desanda fazendo com que não der certo, uma vez removidas as urls que estão inválidas não são aceitas fazendo com que der certo, mas no entanto outras que são válidas passam a não ser aceitas. Onde estou errando? Ao meu ver escrevi a expressão corretamente, mas na prática está errada. Obs.: Por enquanto só escrevi essa para facebook farei para as demais depois que resolver esse empasse.