okram: amigo, si uso un foreach seria ineficiente porque recoreria todos los elementos del array y aunque sean 2 o 3...... va en contra de lo que he aprendido.
Usar un break para salir del ciclo..... tampoco es algo que quiero hacer pero gracias igual porque me hicistes reflexionar un rato.
Aca un codigo que incluye al
buscador MSN:
Código PHP:
<?
Function parse_referal(){
$referer= $_SERVER['HTTP_REFERER'];
$pattern = array ('google'=>'/&q=([0-9a-zA-Z.\+%]{1,})/','yahoo'=>'/\?p=([0-9a-zA-Z.\+%]{1,})/','msn'=>'/\?q=([0-9a-zA-Z.\+%]{1,})/');
$matches=array(); // vacio
if (strstr($referer,'yahoo.'))
preg_match($pattern['yahoo'], $referer, $matches);
else
if (strstr($referer,'google.'))
preg_match($pattern['google'], $referer, $matches);
else
if (strstr($referer,'msn.'))
preg_match($pattern['msn'], $referer, $matches);
return ($matches[1]);
}
echo parse_referal();
?>
Las expresiones tienen una parte en comun pero creo que no hace a la cuestion....asi que asi lo dejo :)
Valoro otras opiniones