Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde Imasters,
Primeiramente obrigado pela atenção.
Estou com um problema para passar variáveis com acentuação por get com url amigavel.
Possuo um array com varias rotas cadastradas
private $urlpatterns = array(
'/'=>'Anuncio_destaques.class.php',
'/contato/enviar'=>'Contato_contato.action.php',
'/anuncie'=>'Contato_anuncie.class.php',
'/pesquisar/(?P<pesquisar>[a-zà-ú\s]+)'=>'Anuncio_pesquisar.class.php',
'/newsletter/assinar'=>'Newsletter_assinar.action.php',
);
Ao acessar uma URL o sistema redireciona para uma pagina aonde fará a validação da url com o seguinte método:
foreach($this->urlpatterns as $pcre=>$app) {
if(preg_match("@^{$pcre}$@",REQUEST_URI,$_GET)) {
$fileName = CONTROLLER_DIR . implode('/',explode('_',$app));
$className = current(explode(".",$app));
break;
}
}
Para parâmetros sem acentos o método funciona normal, agora com acentuação não funciona, ja testei com varias expressões regulares e não obtive sucesso.
O problema esta nessa validação aonde ele pega o Get e testa com a expressão regular do array
preg_match("@^{$pcre}$@",REQUEST_URI,$_GET)
(?P<pesquisar>[a-zà-ú\s]+)
Url desejada
http://localhost/Pesquisar/Educação
Espero que tenha conseguido expressar minha duvida.
Obrigado pela atenção.
Carregando comentários...