How can I convert
ereg_replace(".*\.(.*)$","\\1",$imgfile);
to
preg_replace... ?
?
I'm having trouble with it?
How can I convert
ereg_replace(".*\.(.*)$","\\1",$imgfile);
to
preg_replace... ?
?
I'm having trouble with it?
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg")
I don't know why PHP requires the /
delimiters. The only reason Perl, JS, etc. have them is that they allow regex literals, which PHP doesn't.
$a = 'string/with/slashes'; $b = preg_replace('#/with/#', '-without-', $a);
is valid, sets $b
to string-without-slashes
and you do not have to escape the /
in the regex given to preg_replace
. –
Jahn You should know 4 main things to port ereg patterns to preg:
Add delimiters(/): 'pattern' => '/pattern/'
Escape delimiter if it is a part of the pattern: 'patt/ern' =>
'/patt\/ern/'
Achieve it programmatically in following way:
$ereg_pattern = '<div>.+</div>';
$preg_pattern = '/' .addcslashes($ereg_pattern, '/') . '/';
eregi(case-insensitive matching): 'pattern' => '/pattern/i'
So, if
you are using eregi function for case insenstive matching, just add
'i' in the end of new pattern('/pattern/').
ASCII values: In ereg, if you use number in the pattern, it is
assumed that you are referring to the ASCII of a character. But in
preg, number is not treated as ASCII value. So, if your pattern
contain ASCII value in the ereg expression(for example: new line,
tabs etc) then convert it to hexadecimal and prefix it with \x.
Example: 9(tab) becomes \x9 or alternatively use \t.
Hope this will help.
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg")
I don't know why PHP requires the /
delimiters. The only reason Perl, JS, etc. have them is that they allow regex literals, which PHP doesn't.
"/[a-z]/i"
. –
Lyell $a = 'string/with/slashes'; $b = preg_replace('#/with/#', '-without-', $a);
is valid, sets $b
to string-without-slashes
and you do not have to escape the /
in the regex given to preg_replace
. –
Jahn delimiters, add any char to beginning and end of expression, in this case, and by tradition, the '/' character preg_replace('/.*\.(.*)$/',"\\1",$imgfile);
The regex isn't very good, better to use strrpos and take substr().
Regex is slow, use this. $extension=substr($imgName,strrpos($imgName,'.'));
© 2022 - 2024 — McMap. All rights reserved.
"/[a-z]/i"
. – Lyell