Saturday, 16 July 2011

Very helpful User defined PHP functions

Function to seprate prefix and phone number from the given phone number


<?php
$prefix=454;// prefix from database
$number = 45454545454;// number including prefix

function seprateNumberAndPrefix($prefix, $number){
    $prefixLength=strlen($prefix);
    $prefixInNumber = substr($number, 0,$prefixLength);
    if($prefix==$prefixInNumber){
       return $str = $prefix."_".substr($number, $prefixLength);
    }
}
echo seprateNumberAndPrefix($prefix, $number);
?>



------------------------------------------------------------------------------------------
Check for whole decimal number

function isWholeDecimal($number){
    $numberArr = explode(".", $number);
    $firstPart = $numberArr[0];
    $secPart = $numberArr[1];
    if($secPart>0){
    }else{
        $number = $firstPart;
    }
    return $number;       
}

------------------------------------------------------------------------------------------

Function to download files from server:


function downloadFile($filename){
$filename = str_replace("./","",str_replace("../","",$filename);// it is to prevent hackers to append file path

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression')){
  ini_set('zlib.output_compression', 'Off');
}

$file_extension = strtolower(substr(strrchr($filename,"."),1));
if( $filename == "" )
{
  echo "<html><title>eLouai's Download Script</title><body>ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</body></html>";
  exit;
} elseif ( ! file_exists( $filename ) )
{
  echo "<html><title>eLouai's Download Script</title><body>ERROR: File not found. USE force-download.php?file=filepath</body></html>";
  exit;
};

switch($file_extension)
{
  case "pdf": $ctype="application/pdf"; break;
  case "exe": $ctype="application/octet-stream"; break;
  case "zip": $ctype="application/zip"; break;
  case "doc": $ctype="application/msword"; break;
  case "xls": $ctype="application/vnd.ms-excel"; break;
  case "csv": $ctype="application/vnd.ms-excel"; break;
  case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  case "gif": $ctype="image/gif"; break;
  case "png": $ctype="image/png"; break;
  case "jpeg":
  case "jpg": $ctype="image/jpg"; break;
  default: $ctype="application/force-download";
}

header("Content-Description: File Transfer");
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
ob_clean();
flush();
readfile($filename);
exit();
}


Input: File name with full path:
Example:  downloadFile("/var/www/html/uploads/test.php");


Redirecting the page after record updation or deletion :

function self_redirect($msg){
    $currentPage = basename($_SERVER['PHP_SELF']);
    $_SESSION['succmsg'] =$msg;
    header("Location:$currentPage");
    exit();
}

get success message for display

function succmsg(){
    $succmsg = $_SESSION['succmsg'];
    unset($_SESSION['succmsg']);
    return $succmsg;
}

Make url and email link clickable in message body:

<?php
function  autolink($message) {
    //Convert all urls to links
    $message = preg_replace('#([\s|^])(www)#i', '$1http://$2', $message);
    $pattern = '#((http|https|ftp|telnet|news|gopher|file|wais):\/\/[^\s]+)#i';
    $replacement = '<a href="$1" target="_blank">$1</a>';
    $message = preg_replace($pattern, $replacement, $message);

    /* Convert all E-mail matches to appropriate HTML links */
    $pattern = '#([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.';
    $pattern .= '[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)#i';
    $replacement = '<a href="mailto:\\1">\\1</a>';
    $message = preg_replace($pattern, $replacement, $message);
    return $message;
}
// Usage
$message="For more information visit http://www.google.com or dummyuser@kjkjkjkjkjk.com";
$message = autolink($message);
echo $message;
?>