Shorten text

Wednesday, March 17th, 2010

This is a small function that shortens a string.
It looks if the string is longer than a preset length, and if so cuts the text there.
Then it removes the last word from the string (so your string ends neatly at a space), and adds three dots.

  1. // Shorten a text if nessecary
  2. function shortenText($txt='', $len=0){
  3.  
  4.         if(strlen($txt) > $len){
  5.  
  6.                 $txt = substr($txt, 0, $len);
  7.  
  8.                 $t = split("[\n\r\t ]+", $txt);
  9.                 $t = array_slice($t, 0, -1);
  10.                 $txt = join(' ', $t);
  11.  
  12.                 $txt .= '...';
  13.  
  14.         }
  15.  
  16.         return $txt;
  17. }

Display clean php code for copying

// Shorten a text if nessecary
function shortenText($txt='', $len=0){

	if(strlen($txt) > $len){

		$txt = substr($txt, 0, $len);

		$t = split("[\n\r\t ]+", $txt);
		$t = array_slice($t, 0, -1);
		$txt = join(' ', $t);

		$txt .= '...';

	}

	return $txt;
}

Rot13

Wednesday, March 17th, 2010

Basic rot13 function for PHP (remember that this is NOT secure encryption!).
It’s built into php nowadays, but if you have an old version you may not.

  1. // Rot 13 function for older php versions
  2. function rot13($text){
  3.         $length = strlen($text);
  4.         $newtext = '';
  5.          for($i = 0; $i < $length; $i++){
  6.                  $index = ord($text[$i]);
  7.                  // Rotate upper case.
  8.                  if($index > 64 && $index < 91){
  9.                          $index += 13;
  10.                          if($index > 90) $index -= 26;
  11.                          $newtext .= chr($index);
  12.                 // Rotate lower case.
  13.                 }elseif($index > 96 && $index < 123){
  14.                         $index += 13;
  15.                         if($index > 122) $index -= 26;
  16.                         $newtext .= chr($index);
  17.                  }else{ $newtext .= $text[$i]; }
  18.          }
  19.          return $newtext;
  20. }

Display clean php code for copying

// Rot 13 function for older php versions
function rot13($text){
	$length = strlen($text);
	$newtext = '';
	 for($i = 0; $i < $length; $i++){
		 $index = ord($text[$i]);
		 // Rotate upper case.
		 if($index > 64 && $index < 91){
			 $index += 13;
			 if($index > 90) $index -= 26;
			 $newtext .= chr($index);
		// Rotate lower case.
		}elseif($index > 96 && $index < 123){
			$index += 13;
			if($index > 122) $index -= 26;
			$newtext .= chr($index);
		 }else{ $newtext .= $text[$i]; }
	 }
	 return $newtext;
}

Make a random string

Wednesday, March 17th, 2010

This is a tiny function that makes a random string of predefined length.
It does not use letters and numbers that could be confusing, like O and 0.

  1. // Make a random string
  2. function makeRandomString($length){
  3.         $str = array('a', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z', '2', '4', '5', '6', '7', '8', '9');
  4.         $nkeys = array_rand($str, $length);
  5.         $nstr = '';
  6.         foreach($nkeys as $key){ $nstr .= $str[$key]; }
  7.         return $nstr;
  8. }

Display clean php code for copying

// Make a random string
function makeRandomString($length){
	$str = array('a', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z', '2', '4', '5', '6', '7', '8', '9');
	$nkeys = array_rand($str, $length);
	$nstr = '';
	foreach($nkeys as $key){ $nstr .= $str[$key]; }
	return $nstr;
}

Make image version

Wednesday, March 17th, 2010

This is a function I use to make multiple versions such as thumbnails of uploaded images.
There’s three methods for resizing available in it (mask, fit & limit).

  1. // Function for making a new resized copy of a file
  2. // mask makes the shortest edge match the mask, so it will be bigger than the mask, always resizes!
  3. // fit makes the longest edge match, always resizes!
  4. // limit makes the image fit, but won't stretch if it's smaller.
  5. function makeImageVersion($newWidth, $newHeight, $filePath, $newName, $fileExtension, $method){
  6.  
  7.         // Find out the original size of the image
  8.         list($wO, $hO) = getimagesize($filePath);
  9.  
  10.         // Get the ratios it would take to resize
  11.         $wR = $newWidth / $wO;
  12.         $hR = $newHeight / $hO;
  13.  
  14.         // Figure out which ratio we need
  15.         switch($method){
  16.                 case 'mask':
  17.                         if($wR > $hR){ $ratio = $wR; }
  18.                         else{ $ratio = $hR; }
  19.                         break;
  20.                 case 'limit':
  21.                         if($wR < 1 && $wR < $hR){ $ratio = $wR; }
  22.                         elseif($hR < 1){ $ratio = $hR; }
  23.                         else{ $ratio = 1; }
  24.                         break;
  25.                 case 'fit':
  26.                 default:
  27.                         if($wR > $hR){ $ratio = $hR; }
  28.                         else{ $ratio = $wR; }
  29.                         break;
  30.         }
  31.  
  32.         $wN = round($wO * $ratio);
  33.         $hN = round($hO * $ratio);
  34.  
  35.         $iP = imagecreatetruecolor($wN, $hN);
  36.         imageAlphaBlending($iP, false);
  37.         imageSaveAlpha($iP, true);
  38.  
  39.         if($fileExtension == 'jpg'){ $iI = imagecreatefromjpeg($filePath); }
  40.         elseif($fileExtension == 'png'){        $iI = imagecreatefrompng($filePath); }
  41.         else{ $iI = imagecreatefromgif($filePath); }
  42.  
  43.         imagecopyresampled($iP, $iI, 0, 0, 0, 0, $wN, $hN, $wO, $hO);
  44.  
  45.         if($fileExtension == 'jpg'){ imagejpeg($iP, $newName, 90); }
  46.         elseif($fileExtension == 'png'){ imagepng($iP, $newName); }
  47.         else{ imagegif($iP, $newName); }
  48. }

Display clean php code for copying

// Function for making a new resized copy of a file
// mask makes the shortest edge match the mask, so it will be bigger than the mask, always resizes!
// fit makes the longest edge match, always resizes!
// limit makes the image fit, but won't stretch if it's smaller.
function makeImageVersion($newWidth, $newHeight, $filePath, $newName, $fileExtension, $method){

	// Find out the original size of the image
	list($wO, $hO) = getimagesize($filePath);

	// Get the ratios it would take to resize
	$wR = $newWidth / $wO;
	$hR = $newHeight / $hO;

	// Figure out which ratio we need
	switch($method){
		case 'mask':
			if($wR > $hR){ $ratio = $wR; }
			else{ $ratio = $hR; }
			break;
		case 'limit':
			if($wR < 1 && $wR < $hR){ $ratio = $wR; }
			elseif($hR < 1){ $ratio = $hR; }
			else{ $ratio = 1; }
			break;
		case 'fit':
		default:
			if($wR > $hR){ $ratio = $hR; }
			else{ $ratio = $wR; }
			break;
	}

	$wN = round($wO * $ratio);
	$hN = round($hO * $ratio);

	$iP = imagecreatetruecolor($wN, $hN);
	imageAlphaBlending($iP, false);
	imageSaveAlpha($iP, true);

	if($fileExtension == 'jpg'){ $iI = imagecreatefromjpeg($filePath); }
	elseif($fileExtension == 'png'){	$iI = imagecreatefrompng($filePath); }
	else{ $iI = imagecreatefromgif($filePath); }

	imagecopyresampled($iP, $iI, 0, 0, 0, 0, $wN, $hN, $wO, $hO);

	if($fileExtension == 'jpg'){ imagejpeg($iP, $newName, 90); }
	elseif($fileExtension == 'png'){ imagepng($iP, $newName); }
	else{ imagegif($iP, $newName); }
}

File put contents

Wednesday, March 17th, 2010

file_put_contents() is in php nowadays, but if you’re on an old server you may need your own.
This simply checks if the function’s there, and if not it makes the function.

  1. // Replacement for file_put_contents if it doesn't exist
  2. if(!function_exists('file_put_contents')){
  3.         function file_put_contents($file, $data){
  4.                 $fp = fopen($file, 'w');
  5.                 fwrite($fp, $data);
  6.                 fclose($fp);
  7.         }
  8. }

Display clean php code for copying

// Replacement for file_put_contents if it doesn't exist
if(!function_exists('file_put_contents')){
	function file_put_contents($file, $data){
		$fp = fopen($file, 'w');
		fwrite($fp, $data);
		fclose($fp);
	}
}

Check url

Wednesday, March 17th, 2010

This is a function that checks to see if a url exists.
Not mine btw, but for the life of me I can’t remember where I got it.

  1. // Check if a url exists
  2. function isValidUrl($url){
  3.                 $url = @parse_url($url);
  4.  
  5.                 if ( ! $url) {
  6.                         return false;
  7.                 }
  8.  
  9.                 $url = array_map('trim', $url);
  10.                 $url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port'];
  11.                 $path = (isset($url['path'])) ? $url['path'] : '';
  12.  
  13.                 if ($path == '')
  14.                 {
  15.                         $path = '/';
  16.                 }
  17.  
  18.                 $path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : '';
  19.  
  20.                 if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) )
  21.                 {
  22.                         if ( PHP_VERSION >= 5 )
  23.                         {
  24.                                 $headers = get_headers("$url[scheme]://$url[host]:$url[port]$path");
  25.                         }
  26.                         else
  27.                         {
  28.                                 $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);
  29.  
  30.                                 if ( ! $fp )
  31.                                 {
  32.                                         return false;
  33.                                 }
  34.                                 fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n");
  35.                                 $headers = fread ( $fp, 128 );
  36.                                 fclose ( $fp );
  37.                         }
  38.                         $headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers;
  39.                         return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers );
  40.                 }
  41.                 return false;
  42. }

Display clean php code for copying

// Check if a url exists
function isValidUrl($url){
		$url = @parse_url($url);

		if ( ! $url) {
			return false;
		}

		$url = array_map('trim', $url);
		$url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port'];
		$path = (isset($url['path'])) ? $url['path'] : '';

		if ($path == '')
		{
			$path = '/';
		}

		$path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : '';

		if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) )
		{
			if ( PHP_VERSION >= 5 )
			{
				$headers = get_headers("$url[scheme]://$url[host]:$url[port]$path");
			}
			else
			{
				$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);

				if ( ! $fp )
				{
					return false;
				}
				fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n");
				$headers = fread ( $fp, 128 );
				fclose ( $fp );
			}
			$headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers;
			return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers );
		}
		return false;
}

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, $allowDot=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(!$allowDot) $disallowed['-'] = '.';
  18.         if($allowDot) $sSafe .= '.';
  19.  
  20.         if($allowCase){
  21.                 $sSafe .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  22.                 $disallowed['C'] = 'Ç';
  23.                 $disallowed['N'] = 'Ñ';
  24.                 $disallowed['Y'] = 'ÝŸ';
  25.                 $disallowed['E'] = 'ÈÉÊË';
  26.                 $disallowed['A'] = 'ÀÁÂÃÄÅ';
  27.                 $disallowed['O'] = 'ÐÓÒÔÕÖØ';
  28.                 $disallowed['U'] = 'ÙÚÛÜ';
  29.                 $disallowed['I'] = 'ÌÍÎÏ';
  30.         }else{
  31.                 $myUrl = strtolower($myUrl);
  32.         }
  33.  
  34.         $newString = array();
  35.  
  36.         for($i = 0; $i<strlen($myUrl); $i++){
  37.                 $thisChar = $myUrl[$i];
  38.                 if(stristr($sSafe, $thisChar)){
  39.                         $newString[$i] = $thisChar;
  40.                 }else{
  41.                         foreach($disallowed as $key => $var){
  42.                                 if(stristr($var, $thisChar)){
  43.                                         $newString[$i] = $key;
  44.                                 }
  45.                         }
  46.                 }
  47.         }
  48.         return implode('', $newString);
  49. }

Display clean php code for copying

 // Make sure a url string is nicely formatted
function makeSafeUrl($myUrl, $allowSpace=0, $allowCase=0, $allowDot=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(!$allowDot) $disallowed['-'] = '.';
	if($allowDot) $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);
}

Is valid page

Wednesday, March 17th, 2010

A little function I use to double check the items in a friendly url to see if they only use valid characters.

  1. // Check if the page name is correct
  2. function isValidPage($page){
  3.         $safe = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '_', '.');
  4.         $pageCheck = preg_split('//', strtolower($page), -1, PREG_SPLIT_NO_EMPTY);
  5.  
  6.         // Make sure that the page name has only safe variables
  7.         foreach($pageCheck as $key => $val){
  8.                 if(!in_array($val, $safe)) return false;
  9.         }
  10.         return true;
  11. }

Display clean php code for copying

// Check if the page name is correct
function isValidPage($page){
	$safe = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '_', '.');
	$pageCheck = preg_split('//', strtolower($page), -1, PREG_SPLIT_NO_EMPTY);

	// Make sure that the page name has only safe variables
	foreach($pageCheck as $key => $val){
		if(!in_array($val, $safe)) return false;
	}
	return true;
}

Is date

Wednesday, March 17th, 2010

See if a string is actually a date (used for friendly urls mostly)

  1. // See if a string from the url is an actual date
  2. function isDate($var){
  3.         $time = strtotime(str_replace('-', ' ', $var));
  4.         if($time){
  5.                 if(strlen($var) == 8){
  6.                         return Array('month', $var, $time);
  7.                 }elseif(strlen($var) == 11){
  8.                         return Array('day', $var, $time);
  9.                 }
  10.         }
  11.         return false;
  12. }

Display clean php code for copying

// See if a string from the url is an actual date
function isDate($var){
	$time = strtotime(str_replace('-', ' ', $var));
	if($time){
		if(strlen($var) == 8){
			return Array('month', $var, $time);
		}elseif(strlen($var) == 11){
			return Array('day', $var, $time);
		}
	}
	return false;
}
click here to close

Help keep these files free,
and support further development!