Usando expressões regulares no PHP com preg_match
Acredito que todo programador teve ou ainda têm dificuldades com este assunto ER. As expressões regulares possuem diversas funcionalidades, com ela você pode localizar e filtrar qualquer tipo de conteúdo dentro de uma string. Neste artigo darei...
A
Admin
13 Feb, 2011 ·
1 min de leitura
Acredito que todo programador teve ou ainda têm dificuldades com este assunto ER. As expressões regulares possuem diversas funcionalidades, com ela você pode localizar e filtrar qualquer tipo de conteúdo dentro de uma string.
Neste artigo darei um exemplo bem simples de ER para vocês começarem a entender como funciona este negócio.
Digamos que você têm um URL com a seguinte string: http://www.bestvideos.com/video821389/this-is-the-best. Neste exemplo eu quero filtrar apenas o ID do vídeo que é este com negrito abaixo:
http://www.bestvideos.com/video
821389/this-is-the-best
OK, vamos criar um pequeno algoritmo para filtrar o ID siga o exemplo abaixo:
function getPatternFromVideos($url){
$url = $url.'&';
$pattern = '#\/video(.*?)\/#';
preg_match($pattern, $url, $matches);
//echo $matches[1]; die;
return ($matches[1]);
}
Agora vamos explicar como funciona a função
Na linha onde especificamos a variavél
$pattern está descrito nossa expressão regular onde #\/
video(.*?)\/#
estou informando ao preg_match me retornar o primeiro valor encontrado que esteja entre /videoXXXX e antes da primeira barra que é nosso delimitador que vêm depois do ID do vídeo. A aplicação ficaria assim:
function getPatternFromVideos($url){
$url = $url.'&';
$pattern = '#\/video(.*?)\/#';
preg_match($pattern, $url, $matches);
//echo $matches[1]; die;
return ($matches[1]);
}
$destination="http://www.bestvideos.com/video821389/this-is-the-best";
$videoID=getPatternFromXvideos($destination);
echo "$videoID";
O retorno será algo como:
821389 o ID no qual estavamos procurando. Parece um pouco complicado não mas ER é prática e muito estudo.
Até