Tag Archives: Regular Expression
PHP: preg_match_all_callback
There are several PCRE functions available, but today I looked for one that just wasn’t there: preg_match_all_callback()
.
Could’ve maybe used preg_replace_callback()
, but felt wrong since I didn’t actually want to do any replacing. I just needed my function to be called for each match.
So I wrote it myself. Noting it here, in case I (or someone else) needs it again.
/**
* Perform a global regular expression match
* and calls the callback for each match.
*/
function preg_match_all_callback(
string $pattern,
string $subject,
callable $callback)
{
$r = preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
foreach($matches ?? [] as $match)
$callback($match);
return $r;
}
And, in case someone reads this post and knows it actually does exist… and if that someone is you, please do leave a comment!
And, yes, I could’ve just written those 3 lines where I needed them, but what’s the fun in that? And besides, the shorter the code where it counts, the easier what counts is to read.
Usage
0 => string 'Hello' (length=5)
1 => string 'H' (length=1)
array (size=2)
0 => string 'World' (length=5)
1 => string 'W' (length=1)
PHP: What’s a valid JavaScript identifier (or function name)?
After another reply to a question I’ve had on StackOverflow for a while, I decided that I perhaps should add another level of security to my method of providing JSONP from PHP. The way I did it before, I didn’t do any checking on the provided callback. This means that someone could technically put whatever they wanted in there, including malicious code. So, therefore it might be a good idea to check if the callback, which should be a function name, actually is a valid function name. But,
Continue reading PHP: What’s a valid JavaScript identifier (or function name)?
PHP: How to get all images from an HTML page
Well, step one to solve this is of course to find all the images on a page, and that is what I will present in this post. It will be sort of like a backend service we can use later from an AJAX call. You post it a URL, and you get all the image URLs it found back. Let’s put the petal to medal!
Continue reading PHP: How to get all images from an HTML page
MySQL: Filtering with Regular Expressions
Today I wanted to list all all users in a database who had been too lazy to uppercase the first letter in their name. But how can you do that in MySQL? With regular expressions such a check would be easy to write, but this was in MySQL, not in for example PHP… but wait a minute… MySQL actually supports Regular Expressions? Yes, it does! I honestly had no clue.