mirror of
https://github.com/getgrav/grav.git
synced 2026-03-05 03:51:50 +01:00
Fix for MB Markdown links #1749
This commit is contained in:
@@ -12,6 +12,7 @@ use Grav\Common\Grav;
|
||||
use Grav\Common\Page\Page;
|
||||
use Grav\Common\Uri;
|
||||
use Grav\Common\Page\Medium\Medium;
|
||||
use Grav\Common\Utils;
|
||||
use RocketTheme\Toolbox\Event\Event;
|
||||
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
|
||||
|
||||
@@ -321,7 +322,7 @@ class Excerpts
|
||||
*/
|
||||
protected static function parseUrl($url)
|
||||
{
|
||||
$url_parts = parse_url($url);
|
||||
$url_parts = Utils::multibyteParseUrl($url);
|
||||
|
||||
if (isset($url_parts['scheme'])) {
|
||||
/** @var UniformResourceLocator $locator */
|
||||
|
||||
@@ -997,4 +997,36 @@ abstract class Utils
|
||||
return intval($size);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Multibyte-safe Parse URL function
|
||||
*
|
||||
* @param $url
|
||||
* @return mixed
|
||||
*/
|
||||
public static function multibyteParseUrl($url)
|
||||
{
|
||||
$enc_url = preg_replace_callback(
|
||||
'%[^:/@?&=#]+%usD',
|
||||
function ($matches)
|
||||
{
|
||||
return urlencode($matches[0]);
|
||||
},
|
||||
$url
|
||||
);
|
||||
|
||||
$parts = parse_url($enc_url);
|
||||
|
||||
if($parts === false)
|
||||
{
|
||||
throw new \InvalidArgumentException('Malformed URL: ' . $url);
|
||||
}
|
||||
|
||||
foreach($parts as $name => $value)
|
||||
{
|
||||
$parts[$name] = urldecode($value);
|
||||
}
|
||||
|
||||
return $parts;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user