jdPhpLib is my library of various useful functions I've written in PHP. Because these functions vary wildly, I do not store them in a single PHP file, but instead just copy and paste the functions I need for a particular job.
This function returns the adjusted width and height of an image if it were resized to a maximum of $width by $height. The function keeps the aspect ratio the same and returns an array that contains the new width, height, and a string that can be inserted directly into an HTML image tag.
jdResize ($filename, $width, $height);
////////////////////
// jdResize
//////////
// Get the size of an image, calculate a new width and height based on
// the width and height specified (while maintaining aspect ratio) and
// return a width and height attribute that can be attached to an img tag.
//////////
function jdResize($image, $width, $height) {
// Get the image size
$size = getimagesize($image);
// If there was a problem reading the image size
if (!$size) {
return false;
}
// Set some more readable variables
$originalWidth = $size[0];
$originalHeight = $size[1];
// Figure out if the image is portrait or landscape, set the longest
// side, then calculate the short side.
if ($originalWidth < $originalHeight) // Portrait
{
// Set the longest side (height)
$newHeight = $height;
// Calculate the aspect ratio
$aspect = $originalWidth / $originalHeight;
// Calculate the new pixels for the short side (width)
$newWidth = round($newHeight * $aspect);
}
else // Landscape
{
// Set the longest side (width)
$newWidth = $width;
// Calculate the aspect ratio
$aspect = $originalHeight / $originalWidth;
// Calculate the new pixels for the short side (height)
$newHeight = round($newWidth * $aspect);
}
// Setup an array to return
$retArray[0] = $newWidth;
$retArray[1] = $newHeight;
$retArray[2] = "width=\"$newWidth\" height=\"$newHeight\" debug=\"$originalWidth x $originalHeight : $aspect\"";
// Return the array
return $retArray;
}
This function does a simple CURL post.
jdCurl ($url, $fields);
/**
* Simplified curl call.
*
* @params $url
* @params $fields
*/
function jdCurl($url, $fields, $head = FALSE) {
// Initialize curl
$ch = curl_init();
// Set the curl options
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,2);
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
curl_setopt($ch,CURLOPT_HEADER, TRUE);
// Get the response
$response = curl_exec($ch);
// Split the header and body parts
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
// Close curl
curl_close($ch);
// If the header option was set to true
if ($head === TRUE) {
// Return the header and body
return array(
'header' => trim($header),
'body' => $body
);
} else {
// Return the body
return $result;
}
}