Make a safe url

Wednesday, March 17th, 2010

This is a function that checks a string and makes it work nicely for friendly urls

  1. // Make sure a url string is nicely formatted
  2. function makeSafeUrl($myUrl, $allowSpace=0, $allowCase=0){
  3.         $sSafe = 'abcdefghijklmnopqrstuvwxyz1234567890-_';
  4.         $disallowed = array();
  5.         $disallowed['c'] = 'ç';
  6.         $disallowed['n'] = 'ñ';
  7.         $disallowed['y'] = 'ýÿ';
  8.         $disallowed['e'] = 'èéêë';
  9.         $disallowed['a'] = 'àáâãäå';
  10.         $disallowed['o'] = 'ðóòôõöø';
  11.         $disallowed['u'] = 'ùúûü';
  12.         $disallowed['i'] = 'ìíîï';
  13.  
  14.         if(!$allowSpace) $disallowed['-'] = ' ';
  15.         if($allowSpace) $sSafe .= ' ';
  16.  
  17.         if($allowCase){
  18.                 $sSafe .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  19.                 $disallowed['C'] = 'Ç';
  20.                 $disallowed['N'] = 'Ñ';
  21.                 $disallowed['Y'] = 'ÝŸ';
  22.                 $disallowed['E'] = 'ÈÉÊË';
  23.                 $disallowed['A'] = 'ÀÁÂÃÄÅ';
  24.                 $disallowed['O'] = 'ÐÓÒÔÕÖØ';
  25.                 $disallowed['U'] = 'ÙÚÛÜ';
  26.                 $disallowed['I'] = 'ÌÍÎÏ';
  27.         }else{
  28.                 $myUrl = strtolower($myUrl);
  29.         }
  30.  
  31.         $newString = array();
  32.  
  33.         for($i = 0; $i $var){
  34.                                 if(stristr($var, $thisChar)){
  35.                                         $newString[$i] = $key;
  36.                                 }
  37.                         }
  38.                 }
  39.         }
  40.         return implode('', $newString);
  41. }

Display clean php code for copying

 // Make sure a url string is nicely formatted
function makeSafeUrl($myUrl, $allowSpace=0, $allowCase=0){
	$sSafe = 'abcdefghijklmnopqrstuvwxyz1234567890-_';
	$disallowed = array();
	$disallowed['c'] = 'ç';
	$disallowed['n'] = 'ñ';
	$disallowed['y'] = 'ýÿ';
	$disallowed['e'] = 'èéêë';
	$disallowed['a'] = 'àáâãäå';
	$disallowed['o'] = 'ðóòôõöø';
	$disallowed['u'] = 'ùúûü';
	$disallowed['i'] = 'ìíîï';

	if(!$allowSpace) $disallowed['-'] = ' ';
	if($allowSpace) $sSafe .= ' ';

	if($allowCase){
		$sSafe .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		$disallowed['C'] = 'Ç';
		$disallowed['N'] = 'Ñ';
		$disallowed['Y'] = 'ÝŸ';
		$disallowed['E'] = 'ÈÉÊË';
		$disallowed['A'] = 'ÀÁÂÃÄÅ';
		$disallowed['O'] = 'ÐÓÒÔÕÖØ';
		$disallowed['U'] = 'ÙÚÛÜ';
		$disallowed['I'] = 'ÌÍÎÏ';
	}else{
		$myUrl = strtolower($myUrl);
	}

	$newString = array();

	for($i = 0; $i $var){
				if(stristr($var, $thisChar)){
					$newString[$i] = $key;
				}
			}
		}
	}
	return implode('', $newString);
}