Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/08/2010, 19:43
sesebas
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 3 meses
Puntos: 1
Problema al pasar desde "ereg()" a preg_match()

Hola a todos,

Necesito de su ayuda para salir de este paso:

Tengo la siguiente funci♀n en php para identificar el navegador que usa el cliente

Código PHP:
Ver original
  1. function GetContentSel3($sel3) {
  2.  
  3.             if ((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Firefox", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape";
  4.             elseif(ereg("Firefox", $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox";
  5.             elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
  6.             elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
  7.             elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
  8.             elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
  9.             elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
  10.             elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot";
  11.             else $browser = "Other";
  12.  
  13.               $result = "";
  14.               $found = FALSE;
  15.            
  16.             if ($browser == "FireFox"){
  17.  
  18. /*
  19.  Continua el Script...
  20. */

Todo bien hasta que tuve que correr la aplicacion con PHP 5 x. Aqui la funcion "eregi()" es obsoleta y debo utilizar "preg_match()". Después de buscar un buen rato llegué a probar con los cambios siguientes: (puse delimitadores solo en la linea de inicio del "if" ya que si el error me lo marcaba a partir de la suiente linea ya sabria que cambios hacer en las siguientes, pero....

Código PHP:
Ver original
  1. function GetContentSel3($sel3) {
  2.             if ((preg_match('/Nav/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/Gold/' $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/X11/' $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/Mozilla/' $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/Netscape/' $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/MSIE/' $_SERVER["HTTP_USER_AGENT"])) AND (!ereg('/Konqueror/' $_SERVER["HTTP_USER_AGENT"])) AND (!ereg('/Firefox/' $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape";
  3.             elseif(preg_match("Firefox", $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox";
  4.             elseif(preg_match("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
  5.             elseif(preg_match("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
  6.             elseif(preg_match("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
  7.             elseif(preg_match("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
  8.             elseif(preg_match("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
  9.             elseif((preg_match("bot", $_SERVER["HTTP_USER_AGENT"])) || (preg_match("Google", $_SERVER["HTTP_USER_AGENT"])) || (preg_match("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (preg_match("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (preg_match("Spider", $_SERVER["HTTP_USER_AGENT"])) || (preg_match("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot";
  10.             else $browser = "Other";
  11.  
  12.               $result = "";
  13.               $found = FALSE;
  14.            
  15.             if ($browser == "FireFox"){

pero obtengo errores. El primero es

Código HTML:
Ver original
  1. Parse error: parse error in ....\SelectS.php on line 39
  2.  
  3. o sea ya en el inicio:
  4.  
  5.             if ((preg_match('/Nav/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/Gold/' $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/X11/' $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/Mozilla/' $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/Netscape/' $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/MSIE/' $_SERVER["HTTP_USER_AGENT"])) AND (!ereg('/Konqueror/' $_SERVER["HTTP_USER_AGENT"])) AND (!ereg('/Firefox/' $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape";

Bueno, he buscado manera de resolverlo, pero no he podido.

Ojala alguien me pueda dar una mano.

Gracias.