¿Cómo puedo convertirereg_replace to preg_replace?
ereg_replace(".*\.(.*)$","\\1",$imgfile);
a
preg_replace... ?
?
¿Tengo problemas con eso?
¿Cómo puedo convertirereg_replace to preg_replace?
ereg_replace(".*\.(.*)$","\\1",$imgfile);
a
preg_replace... ?
?
¿Tengo problemas con eso?
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg")
no sé qué PHP requiere /
los delimitadores. La única razón por la que Perl, JS, etc. los tienen es que permiten literales de expresiones regulares, lo que PHP no hace.
delimitadores, agregue cualquier char al principio y al final de la expresión, en este caso, y por tradición, el carácter '/' preg_replace('/.*\.(.*)$/',"\\1",$imgfile);
La expresión regular no es muy buena, mejor usar strrpos y tomar substr().
Regex es lento, úselo. $ extension = substr ($ imgName, strrpos ($ imgName, '.'));
Lo sé pero tengo este problema; preg_replace() [function.preg-replace]: Modificador desconocido '$' en C: \ wamp \ www .. – sml
Sí, es malo, también la edición parece destruir la expresión. Al final es mejor usar un substr() en este caso. También puedes usar preg_match. –
Puede escapar de su código con backticks (vea http://stackoverflow.com/editing-help). La corrección de $ se ve bien. –
Debe saber 4 cosas principales a los patrones Ereg puerto a preg:
Añadir delimitadores (/): 'pattern' => '/pattern/'
Escapar delimitador si se trata de una parte de el patrón: 'patt/ern' => '/patt\/ern/'
Lograrlo programáticamente de la siguiente manera:
$ereg_pattern = '<div>.+</div>';
$preg_pattern = '/' .addcslashes($ereg_pattern, '/') . '/';
eregi (entre mayúsculas y minúsculas juego): 'pattern' => '/pattern/i'
lo tanto, si está utilizando la función eregi para el caso de coincidencia de insenstive, sólo tiene que añadir 'i' en el final del nuevo patrón ('/ patrón/').
valores ASCII: En ereg, si se utiliza el número en el patrón, es supone que se está refiriendo a la ASCII de un carácter. Pero en preg, el número no se trata como valor ASCII. Por lo tanto, si su patrón contiene un valor ASCII en la expresión ereg (por ejemplo: nueva línea, pestañas, etc.), conviértalo a hexadecimal y póngalo como prefijo \ x.
Example: 9(tab) becomes \x9 or alternatively use \t.
Esperamos que esto ayude.
Hay un built-in para escapar de una cadena de expresiones regulares entre delimitadores http://php.net/manual/en/function.preg-quote.php –
Es porque optan por utilizar una sola cadena para proporcionar el modificador y el patrón de expresión regular. '"/[a-z]/i "'. – kennytm