Vergleich inc/class_parser.php - 1.8.30 - 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 1469Zeile 1471
	*/
function mycode_parse_video($video, $url)
{

	*/
function mycode_parse_video($video, $url)
{

		global $templates;

		global $mybb, $templates;


if(empty($video) || empty($url))


if(empty($video) || empty($url))

		{
return "[video={$video}]{$url}[/video]";

		{
return "[video={$video}]{$url}[/video]";

		}

// Check URL is a valid URL first, as `parse_url` doesn't check validity.
if(false === filter_var($url, FILTER_VALIDATE_URL))

		}

// Check URL is a valid URL first, as `parse_url` doesn't check validity.
if(false === filter_var($url, FILTER_VALIDATE_URL))

		{
return "[video={$video}]{$url}[/video]";
}

		{
return "[video={$video}]{$url}[/video]";
}


$parsed_url = @parse_url(urldecode($url));
if($parsed_url === false)
{
return "[video={$video}]{$url}[/video]";


$parsed_url = @parse_url(urldecode($url));
if($parsed_url === false)
{
return "[video={$video}]{$url}[/video]";

		}

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

if($video == "liveleak")
{

		}

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

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

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
}
break;
case "metacafe":

				{
$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]);



				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




				if(!empty($path[4]))
{
$id = $path[4]; // http://www.myspace.com/video/fds/fds/123
}

				break;
case "facebook":

				break;
case "facebook":

				if(isset($input['v']))

				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

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

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

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

				}
break;
case "mixer":
$id = $path[1]; // https://mixer.com/streamer




				}
break;
case "mixer":
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]))
{
$local = "{$domain[0]}.";
}
else

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






				{

				{

					$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 1614Zeile 1632
				break;
default:
return "[video={$video}]{$url}[/video]";

				break;
default:
return "[video={$video}]{$url}[/video]";

		}

		}


if(empty($id))
{


if(empty($id))
{

Zeile 1675Zeile 1693
	*/
function mycode_auto_url($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 1712
					(?:www|ftp)\.								# common subdomain
)
(?P<link>

					(?:www|ftp)\.								# common subdomain
)
(?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 1733Zeile 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);
}