la primera, debes leer el manual de PHP .... ahí se especifica que debe escribirse idéntico, que sin eval() ...
Código PHP:
if (eval(" return ( '$ext' == 'gif' or '$ext' == 'png'? true: null); "))
por favor, lee el manual...
http://php.net/eval Cita:
Iniciado por http://php.net/eval Existen algunos factores a tener en cuenta cuando se usa eval(). Recuerde que la cadena pasada debe ser código PHP válido, incluyendo cosas como la terminación de sentencias con un punto-y-coma de modo que el intérprete no falle en la línea siguiente al llamado a eval(), y escapar apropiadamente las cosas en cadena_codigo . Para mezclar salida HTML y código PHP, es posible usar una etiqueta de cierre PHP para abandonar el modo PHP.
la otra, bueno... espero leas esto:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
ya que, en mi ejemplo... estoy especificando que se empieza con un punto
\. y bueno, tan solo quitalo y prueba....
Código PHP:
if (preg_match('/^(jpe?g|png|gif)$/i', $ext))
en este caso, ya que tan solo comparas la extensión debe ser exacta... por eso el
^$