Jump to content

Use variables within preg_match_all


dreamwest

Recommended Posts

First, you're using the wrong type of quotation marks (double instead of single) in that snippet.

 

Second, it is advisable to use preg_quote because the variable value might contain special characters (like yours contains the dot) which mean something in regular expressions.

 

An example might be:

 

$img = "fun.jpg";
preg_match_all('~[\'"](.*?)' . preg_quote($img, '~') . '[\'"]~is', $str, $a);

 

I sometimes like to make things a little "neater" (arguably) using sprintf but it's purely cosmetic and does nothing different than the code above:

 

$img     = "fun.jpg";
$pattern = sprintf('~[\'"](.*?)%s[\'"]~is', preg_quote($img, '~'));
preg_match_all($pattern, $str, $a);

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.