Vergleich inc/class_parser.php - 1.8.31 - 1.8.39

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 1115Zeile 1115
		$code = @highlight_string($str, true);

// Do the actual replacing.

		$code = @highlight_string($str, true);

// Do the actual replacing.

 
		$code = preg_replace('#<pre><code style="color: \#000000">#i', "<code>", $code);

		$code = preg_replace('#<code>\s*<span style="color: \#000000">\s*#i', "<code>", $code);
$code = preg_replace("#</span>\s*</code>#", "</code>", $code);

		$code = preg_replace('#<code>\s*<span style="color: \#000000">\s*#i', "<code>", $code);
$code = preg_replace("#</span>\s*</code>#", "</code>", $code);

 
		$code = preg_replace("#</code>\s*</pre>#", "</code>", $code);

		$code = preg_replace("#</span>(\r\n?|\n?)</code>#", "</span></code>", $code);
$code = str_replace("\\", '&#092;', $code);
$code = str_replace('$', '&#36;', $code);

		$code = preg_replace("#</span>(\r\n?|\n?)</code>#", "</span></code>", $code);
$code = str_replace("\\", '&#092;', $code);
$code = str_replace('$', '&#36;', $code);

Zeile 1124Zeile 1126

if($added_open_tag)
{


if($added_open_tag)
{

			$code = preg_replace("#<code><span style=\"color: \#([A-Z0-9]{6})\">&lt;\?php( |&nbsp;)(<br />?)#", "<code><span style=\"color: #$1\">", $code);

			$code = preg_replace("#<code><span style=\"color: \#([A-Z0-9]{6})\">&lt;\?php( |&nbsp;)(<br />|\n)#", "<code><span style=\"color: #$1\">", $code);

		}

if($added_end_tag)

		}

if($added_end_tag)

Zeile 1490Zeile 1492

$bbdomain = parse_url($mybb->settings['bburl'], PHP_URL_HOST);



$bbdomain = parse_url($mybb->settings['bburl'], PHP_URL_HOST);


		$fragments = array();
if($parsed_url['fragment'])
{
$fragments = explode("&", $parsed_url['fragment']);
}

		$fragments = empty($parsed_url['fragment']) ? array() : explode("&", $parsed_url['fragment']);









		if($video == "liveleak")

		if($video == "liveleak" && !empty($parsed_url['query']))

		{
// The query part can start with any alphabet, but set only 'i' to catch in index key later
$parsed_url['query'] = "i".substr($parsed_url['query'], 1);

		{
// The query part can start with any alphabet, but set only 'i' to catch in index key later
$parsed_url['query'] = "i".substr($parsed_url['query'], 1);

		}

$queries = explode("&", $parsed_url['query']);

		}

$queries = empty($parsed_url['query']) ? array() : explode("&", $parsed_url['query']);


$input = array();
foreach($queries as $query)


$input = array();
foreach($queries as $query)

		{
list($key, $value) = explode("=", $query);
$key = str_replace("amp;", "", $key);
$input[$key] = $value;





		{
$query_array = explode("=", $query);
if(count($query_array) == 2)
{
list($key, $value) = $query_array;
$key = str_replace("amp;", "", $key);
$input[$key] = $value;
}

		}

		}


$path = explode('/', $parsed_url['path']);


$path = empty($parsed_url['path']) ? array() : explode('/', $parsed_url['path']);


switch($video)
{
case "dailymotion":


switch($video)
{
case "dailymotion":

				if(isset($path[2]))

				if(!empty($path[2]))

				{
list($id) = explode('_', $path[2], 2); // http://www.dailymotion.com/video/fds123_title-goes-here

				{
list($id) = explode('_', $path[2], 2); // http://www.dailymotion.com/video/fds123_title-goes-here

				}
else

				}
elseif(!empty($path[1]))

				{
$id = $path[1]; // http://dai.ly/fds123

				{
$id = $path[1]; // http://dai.ly/fds123

				}
break;
case "metacafe":
$id = $path[2]; // http://www.metacafe.com/watch/fds123/title_goes_here/
$title = htmlspecialchars_uni($path[3]);



				}
break;
case "metacafe":
if(!empty($path[2]))
{
$id = $path[2]; // http://www.metacafe.com/watch/fds123/title_goes_here/
}

				break;
case "myspacetv":

				break;
case "myspacetv":

				$id = $path[4]; // http://www.myspace.com/video/fds/fds/123
break;
case "facebook":
if(isset($input['v']))




				if(!empty($path[4]))
{
$id = $path[4]; // http://www.myspace.com/video/fds/fds/123
}
break;
case "facebook":
if(!empty($input['v']))

				{
$id = $input['v']; // http://www.facebook.com/video/video.php?v=123

				{
$id = $input['v']; // http://www.facebook.com/video/video.php?v=123

				}
elseif(substr($path[3], 0, 3) == 'vb.')

				}
elseif(!empty($path[3]) && substr($path[3], 0, 3) == 'vb.' && !empty($path[4]))

				{
$id = $path[4]; // https://www.facebook.com/fds/videos/vb.123/123/
}

				{
$id = $path[4]; // https://www.facebook.com/fds/videos/vb.123/123/
}

				else
{
$id = $path[3]; // https://www.facebook.com/fds/videos/123/
}

				elseif(!empty($path[3]))
{
$id = $path[3]; // https://www.facebook.com/fds/videos/123/
}

				break;
case "mixer":

				break;
case "mixer":

				$id = $path[1]; // https://mixer.com/streamer




				if(!empty($path[1]))
{
$id = $path[1]; // https://mixer.com/streamer
}

				break;
case "liveleak":

				break;
case "liveleak":

				$id = $input['i']; // http://www.liveleak.com/view?i=123




				if(!empty($input['i']))
{
$id = $input['i']; // http://www.liveleak.com/view?i=123
}

				break;
case "yahoo":

				break;
case "yahoo":

				if(isset($path[2]))

				if(!empty($path[2]))

				{
$id = $path[2]; // http://xy.screen.yahoo.com/fds/fds-123.html
}

				{
$id = $path[2]; // http://xy.screen.yahoo.com/fds/fds-123.html
}

				else

				elseif(!empty($path[1]))

				{
$id = $path[1]; // http://xy.screen.yahoo.com/fds-123.html
}
// Support for localized portals

				{
$id = $path[1]; // http://xy.screen.yahoo.com/fds-123.html
}
// Support for localized portals

				$domain = explode('.', $parsed_url['host']);
if($domain[0] != 'screen' && preg_match('#^([a-z-]+)$#', $domain[0]))

				if(!empty($parsed_url['host']))


				{

				{

					$local = "{$domain[0]}.";
}
else
{
$local = '';





					$domain = explode('.', $parsed_url['host']);
if($domain[0] != 'screen' && preg_match('#^([a-z-]+)$#', $domain[0]))
{
$local = "{$domain[0]}.";
}
else
{
$local = '';
}

				}
break;
case "vimeo":

				}
break;
case "vimeo":

				if(isset($path[3]))

				if(!empty($path[3]))

				{
$id = $path[3]; // http://vimeo.com/fds/fds/fds123
}

				{
$id = $path[3]; // http://vimeo.com/fds/fds/fds123
}

				else

				elseif(!empty($path[1]))

				{
$id = $path[1]; // http://vimeo.com/fds123
}
break;
case "youtube":

				{
$id = $path[1]; // http://vimeo.com/fds123
}
break;
case "youtube":

				if($fragments[0])

				if(!empty($fragments[0]))

				{
$id = str_replace('!v=', '', $fragments[0]); // http://www.youtube.com/watch#!v=fds123
}

				{
$id = str_replace('!v=', '', $fragments[0]); // http://www.youtube.com/watch#!v=fds123
}

				elseif($input['v'])

				elseif(!empty($input['v']))

				{
$id = $input['v']; // http://www.youtube.com/watch?v=fds123
}

				{
$id = $input['v']; // http://www.youtube.com/watch?v=fds123
}

				else

				elseif(!empty($path[1]))

				{
$id = $path[1]; // http://www.youtu.be/fds123
}

				{
$id = $path[1]; // http://www.youtu.be/fds123
}

Zeile 1621Zeile 1637
		if(empty($id))
{
return "[video={$video}]{$url}[/video]";

		if(empty($id))
{
return "[video={$video}]{$url}[/video]";

		}

$id = $this->encode_url($id);


		}

$id = $this->encode_url($id);


		eval("\$video_code = \"".$templates->get("video_{$video}_embed", 1, 0)."\";");
return $video_code;
}

		eval("\$video_code = \"".$templates->get("video_{$video}_embed", 1, 0)."\";");
return $video_code;
}

Zeile 1676Zeile 1692
	* @return string The parsed message.
*/
function mycode_auto_url($message)

	* @return string The parsed message.
*/
function mycode_auto_url($message)

	{
// Links should end with slashes, numbers, characters and braces but not with dots, commas or question marks
// Don't create links within existing links (handled up-front in the callback function).









	{
/*
* Don't create links:
* - within existing links (any <a> HTML tag must be returned as-is)
* - within HTML tags (must not be followed by a > character without a matching < after the link)
*
* Don't include:
* - common punctuation characters around the link
* - braces that likely constitute punctuation around the particular link (handled in the callback function)
* - partial HTML entities (https://github.com/mybb/mybb/issues/4303)
*/

		$message = preg_replace_callback(
"~
<a\\s[^>]*>.*?</a>| # match and return existing links

		$message = preg_replace_callback(
"~
<a\\s[^>]*>.*?</a>| # match and return existing links

Zeile 1686Zeile 1710
				(?P<prefix>
(?:http|https|ftp|news|irc|ircs|irc6)://| # scheme, or
(?:www|ftp)\. # common subdomain

				(?P<prefix>
(?:http|https|ftp|news|irc|ircs|irc6)://| # scheme, or
(?:www|ftp)\. # common subdomain

				)

				)

				(?P<link>

				(?P<link>

					(?:[^\/\"\s\<\[\.]+\.)*[\w]+				# host
(?::[0-9]+)? # port
(?:/(?:[^\"\s<\[&]|\[\]|&(?:amp|lt|gt);)*)? # path, query, fragment; exclude unencoded characters
[\w\/\)]










					(?:
\[[0-9a-fA-F:]+(?:%[0-9a-zA-Z._-]+)?\]| # IPv6 address with optional zone
(?:\d{1,3}\.){3}\d{1,3}| # IPv4 address
(?:[^\"\s<>\[\]:/?&#.]+\.)*[\w-]+ # domain name
)
(?::[0-9]+)? # optional port number
(?:/[^\"\s<>\[\]?&#]*)? # optional path
(?:\?(?:[^\"\s<>\[\]?#]|\[\])*)? # optional query
(?:\#[^\"\s<>\[\]]*)? # optional fragment
)
(?:
(?<=&amp;)|(?<=&lt;)|(?<=&gt;)| # allow trailing entities
(?<![.,:`'\"?!])(?<!&) # exclude other trailing punctuation

				)
(?![^<>]*?>) # not followed by unopened > (within HTML tags)
~iusx",

				)
(?![^<>]*?>) # not followed by unopened > (within HTML tags)
~iusx",

Zeile 1735Zeile 1768
			$last_char = my_substr($matches['link'], -1);
while($last_char == '.' || $last_char == ',' || $last_char == '?' || $last_char == '!')
{

			$last_char = my_substr($matches['link'], -1);
while($last_char == '.' || $last_char == ',' || $last_char == '?' || $last_char == '!')
{

				$matches[4] = my_substr($matches['link'], 0, -1);

				$matches['link'] = my_substr($matches['link'], 0, -1);

				$external = $last_char.$external;
$last_char = my_substr($matches['link'], -1);
}

				$external = $last_char.$external;
$last_char = my_substr($matches['link'], -1);
}