diff options
Diffstat (limited to 'engine/lib/output.php')
| -rw-r--r-- | engine/lib/output.php | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/engine/lib/output.php b/engine/lib/output.php index 60bcc72cd..6554481f5 100644 --- a/engine/lib/output.php +++ b/engine/lib/output.php @@ -234,7 +234,7 @@ function elgg_clean_vars(array $vars = array()) {   *   * @example   * elgg_normalize_url('');                   // 'http://my.site.com/' - * elgg_normalize_url('dashboard');       // 'http://my.site.com/dashboard' + * elgg_normalize_url('dashboard');          // 'http://my.site.com/dashboard'   * elgg_normalize_url('http://google.com/'); // no change   * elgg_normalize_url('//google.com/');      // no change   * @@ -257,6 +257,11 @@ function elgg_normalize_url($url) {  		$validated = filter_var($url, FILTER_VALIDATE_URL);  	} +	// work around for handling absoluate IRIs (RFC 3987) - see #4190 +	if (!$validated && (strpos($url, 'http:') === 0) || (strpos($url, 'https:') === 0)) { +		$validated = true; +	} +  	if ($validated) {  		// all normal URLs including mailto:  		return $url; @@ -306,6 +311,9 @@ function elgg_get_friendly_title($title) {  	}  	//$title = iconv('UTF-8', 'ASCII//TRANSLIT', $title); + +	// use A-Za-z0-9_ instead of \w because \w is locale sensitive +	$title = preg_replace("/[^A-Za-z0-9_ ]/", "", $title);  	$title = preg_replace("/[^\w ]/", "", $title);  	$title = str_replace(" ", "-", $title);  	$title = str_replace("--", "-", $title); | 
