--- flashvideo.module 2009-05-02 04:28:01.000000000 +0200
+++ flashvideo.module 2009-06-17 05:30:09.000000000 +0200
@@ -2147,7 +2147,7 @@ function flashvideo_get_video_object($no
function _flashvideo_parse_params($body, &$pos, $max_params = 10) {
// If we are able to find the end tag delimiter denoted by "]"
- if (($endpos = strpos($body, ']', $pos)) !== FALSE) {
+ if (($endpos = mb_strpos($body, ']', $pos)) !== FALSE) {
// Set up an array of characters to take out from the parameter string.
$bad_chars = array("
", "
", "
", "
", "\n", "\r", "\t", " ");
@@ -2162,7 +2162,7 @@ function _flashvideo_parse_params($body,
$parts = explode(':', $param_string);
// Set the position to the end position.
- $pos = $endpos + 1;
+ $pos = strpos($body, ']', $pos) + 1;
// Remove the first index (it's not a parameter).
unset($parts[0]);
@@ -2229,13 +2229,15 @@ function _flashvideo_replace_tags(&$node
$body = (isset($node->teaser) && $node->body == '') ? $node->teaser : $node->body;
// Search for tags
- for ($pos = 0; (($pos = $startpos = strpos($body, $tag, $pos)) !== FALSE); $pos++) {
+ for ($pos = 0, $lastpos = 0; (($pos = mb_strpos($body, $tag, $pos)) !== FALSE); $pos++) {
+
+ $startpos = strpos($body, $tag, $lastpos);
// We need to check to see if this tag has "!" in front of it, if it does, then we will ignore this tag.
if (drupal_substr($body, $pos - 1, 1) == '!') {
// Replace the body with this with a normal "[video]" or "[thumbnail]"
- $body = substr_replace($body, $tag, $pos - 1, drupal_strlen($tag) + 1);
+ $body = substr_replace($body, $tag, $startpos - 1, drupal_strlen($tag) + 1);
}
// This is the real thing.
@@ -2260,6 +2262,8 @@ function _flashvideo_replace_tags(&$node
// If the position exceeds the body length, then break out of the loop.
if ($pos >= drupal_strlen($body))
break;
+
+ $lastpos = $pos;
}
// Set the teaser or the body dependent on which one is being shown.