Image sizes in Perl

If you need for figure out the size of an image, fetch Image::Size from CPAN , it’s just what you need. The module recognizes the most common image-formats such as JPG, GIF, PNG, PSD, TIFF and plenty more. The interface is simple and will get you what you need with no trouble at all.

 #!/usr/bin/perl -w use strict; use Image::Size;

# Just fetch the size 
my ($size_x, $size_y) = Image::Size::imgsize('test.jpg'); 
print "Image is: $size_y x $size_x (height x width)\n";

# HTML-friendly format 
my $size = Image::Size::html_imgsize('test.jpg'); 

exit();

Image sizes and PHP

If you have the GD extension available, you can do a few useful things. One of the simple things is getting an image size is a simple matter. You can either fetch the height and width in seperate variables – or even fetch the height and width in a string pre-formatted for use in an image tag.

Here’s the example in source:

$load\_ext = get\_loaded\_extensions();

if (!in\_array(gd, $load\_ext)) {
    echo "GD is NOT available";
    die();
}

$nikonFile   = './aarhus\_demo\_photo.jpg';
list($width, $height, $type, $img\_txt)  = getimagesize($nikonFile);

echo "The image is ".$width . " by ".$height."\\n";
echo "![]($nikonFile)\\n";

Reading Exif data with PHP

Within most photos from digital cameras besides the actual image, there’s a little ”information block” call EXIF data. If you have the correct PHP extension installed on your server – the one called ”exif” – it’s pretty easy to read the EXIF data and display them, as you like.

First, let’s check if the extension is available?

$load\_ext = get\_loaded\_extensions();
if (!in\_array(exif, $load\_ext)) {
echo "Exif is NOT available";
} else {
echo "Exif extension is available.";
};

Simple benchmarks in PHP

If you’re doing some basic profiling of your PHP scripts, the build-in microtime function can help you make some simple benchmarking fast. Here’s a rough example to show you how it could be used. The doSomething function is the function we want to benchmark.

$time = microtime();
$time = explode(' ', $time);
$time = $time\[1\] + $time\[0\];
$start = $time;

doSomething();

$time = microtime();
$time = explode(' ', $time);
$time = $time\[1\] + $time\[0\];
$finish = $time;
$total\_time = round(($finish - $start), 6);
if ($debug) print ("<p>Processing took approximately $total\_time seconds</p>");

Create a random password with PHP

Some websites require access control, and sometimes you may need to generate a password for a user. Here’s a simple function that can do just that.

The $base-variable contains the characters allowed in the password. The supplied string may be changed, but the selected charaters should exist on all keyboards (as far as I know). When calling the function, you can specify the lenght of the password you want. Simple, right?

function makePassword($desiredLenght = 8) {
    $password = '';
    $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

    for($i=0;$i<$desiredLenght;$i++) {
        $password .= $base\[(rand(0, (strlen($base)-1)))\];
    }
    return $password;
}

Cracking the Cryptex with PHP

In the book “the Davinci Code” there was a fun little device called a cryptex.. A Cryptex has 6 dials with 6  letters on each, and only one combination producing a word will open it. The most straight forward way to crack it would be to try every combination one by one, but there’s a substantial number of combinations and we know only those which a valid words is a candidate.

A binary clock in PHP

There are some odd functions hidden in PHP. One of them is the decbin function, which makes it easy to convert between decimal and binary numbers.

If you’re bore don a rain day, you could use this function to make a simple binary clock, here’s a few lines to get you started:

echo "Hours: ".decbin(date("H"))."  
";
echo " Minutes:".decbin(date("i"))."  
";
echo " Seconds:".decbin(date("s"));

See the binary clock output (and the source of the page).

Checking requirements for PHP Applications

A great strength in PHP is that it’s so accessible, that almost anyone can get access to a PHP site and often will download “applications” for their site such as discussion boards, photo galleries and others. While it may easy to download such applications, it often happens that the people trying to get things to work, doesn’t read the requirements section of the install.txt or readme.txt file, and thus never get the application running and doesn’t understand what the problem was and how to fix it. This is a brief guide with some tips on how to improve usability in this area.

Wordpress 404 Notifier broken?

While trying to respect the notion that URLs dont change, moving to a completely different engine for a website is bound to cause many URL changes. I’ve been trying to redirect old broken URLs to their new destination, and one of the tools was the 404 Notifier plugin for Wordpress.

The idea is that you configure it to send you a mail every time a 404 error occur. I did that and configured it to mail me at my GMail address (with endless storeage). It seemed like a great idea, but somehow it seem to mail me plenty of false alerts.

Wordpress plugins at work

Publishing a list of which pluins you use seems to be popular among Wordpress users, so here’s my contribution in case you’re wondering, which plugins are in use around this site.

In line: