Com a função PHP wp_http_validate_url() você verifica se uma URL é válida ou não, de acordo com a HTTP API.

$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-100/?teste=valor";

if ( wp_http_validate_url( $url ) ) {
	// URL é válida

} else {
	// URL inválida
	
}Code language: PHP (php)

Diferente das funções esc_url() e esc_url_raw(), cujo foco é fazer a limpeza de caracteres inválidos de uma URL, a função wp_http_validate_url() faz várias validações, dentre elas:

  1. Uso de protocolo HTTP ou HTTPS;
  2. Se houver porta, deve ser 80, 443 ou 8080;
  3. Ausência de user ou pass;

Mas isto não significa que você não precisa mais fazer a limpeza da URL depois do seu uso. Veja o exemplo abaixo:

$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-100/?teste=<script>alert('oi');</script>";
if ( wp_http_validate_url( $url ) ) {
	// URL é válida
	echo "URL é: " . $url;
} else {
	// URL inválida
	echo "URL inválida, digite uma nova URL.";
}Code language: PHP (php)

A URL é válida, mas como não foi feito a limpeza o código em Java Script adicionado na URL será executado. A maneira segura de utilizar o código acima seria utilizar o esc_url() na exibição da URL:

$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-100/?test=<script>alert('oi');</script>";
if ( wp_http_validate_url( $url ) ) {
	// URL é válida
	echo "URL é: " . esc_url( $url );
} else {
	// URL inválida
	echo "URL inválida, digite uma nova URL.";
}Code language: PHP (php)


Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *