Converting Posix Regex to PCRE in PHP -
this question has answer here:
i have cms on front-end grabs pages id, shown here:
$pageid = ereg_replace("[^0-9]", "", $_get['pid']);
this old code trying update since posix deprecated, efforts convert (using preg_replace) have been unsuccessful. if convert line me, appreciate it.
add code comments
my first guess along lines of
$pageid = preg_replace("/[^0-9]/","",$_get['pid'];
which gave errors, further reduced
$pageid = preg_replace("/^0-9/","",$_get['pid']
forgive me, understanding of regex rather limited.
let's explain posix pattern does.
[^0-9]
[
start of character class , ]
end. when character class starts ^
means it's inverted (= matches listed). 0-9
digits.
so globally [^0-9]
matches not digit.
the same pattern available in pcre work:
$page_id = preg_replace('/[^0-9]/', '', $_get['pid']);
pcre has nice shortcuts express things. example [0-9]
can replaced \d
(d stands digits) \d
(using capital letter) inverse , equivalent [^0-9]
.
which leads following:
$page_id = preg_replace('/\d/', '', $_get['pid']);
Comments
Post a Comment