// exclude swf files from the filter\r
//$CFG->filter_mediaplugin_ignore_swf = true;\r
\r
- $q = '["'."']?"; // single, double, or no quote\r
+ $space = '\s(?:.+\s)?';\r
+ $quote = '["'."']?"; // single, double, or no quote\r
\r
// patterns to media files types and paths\r
- $filetype = "avi|mpeg|mpg|mp3|mov|swf|wmv";\r
+ $filetype = "avi|mpeg|mpg|mp3|mov|wmv";\r
$filepath = ".*?\.($filetype)";\r
\r
$tagopen = '(?:(<)|(\\\\u003C))'; // left angle-bracket (uses two parenthese)\r
$tagreopen = '(?(1)<|(?(2)\\\\u003C))'; // another left angle-bracket (to match the first one)\r
\r
// pattern to match <PARAM> tags which contain the file path\r
- // wmp : url\r
+ // wmp : url\r
// quicktime : src\r
// realplayer : src\r
// flash : movie (doesn't need replacing)\r
- $param_url = "/{$tagopen}PARAM\s+.*?NAME=$q(?:movie|src|url)$q\s+.*?VALUE=$q($filepath)$q.*?$tagclose/is";\r
+ $param_url = "/{$tagopen}param{$space}name=$quote(?:movie|src|url)$quote{$space}value=$quote($filepath)$quote.*?$tagclose/is";\r
\r
// pattern to match <a> tags which link to multimedia files\r
- $link_url = "/{$tagopen}A\s.*?HREF=$q($filepath)$q.*?$tagclose.*?$tagreopen\/A$tagclose/is";\r
+ $link_url = "/{$tagopen}a{$space}href=$quote($filepath)$quote.*?$tagclose.*?$tagreopen\/A$tagclose/is";\r
\r
- // extract <OBJECT> tags\r
- preg_match_all("/{$tagopen}OBJECT\s+.*?{$tagclose}(.*?){$tagreopen}\/OBJECT{$tagclose}/is", $this->html, $objects);\r
+ // extract <object> tags\r
+ preg_match_all("/{$tagopen}object\s.*?{$tagclose}(.*?){$tagreopen}\/object{$tagclose}/is", $this->html, $objects);\r
\r
$i_max = count($objects[0]);\r
for ($i=0; $i<$i_max; $i++) {\r
}\r
\r
if ($url) {\r
+ // strip inner tags (e.g. <embed>)\r
$txt = preg_replace("/$tagopen.*?$tagclose/", '', $objects[3][$i]);\r
\r
// if url is in the query string, remove the leading characters\r