During the php|works conference in Atlanta this year I took the PHP5 Zend Certification, and I’m pleased to say that today I found out I had passed! So I am now pleased to say that I am a Zend Certified Engineer for both PHP4 and PHP5.
And just to prove it…

Here’s a simply view helper for the Zend Framework that can be used to display image tags. It checks to see if the image file exists and if not then it’ll use the data url scheme to output a very simple image that, ironically, says ‘NO IMG’ on it.
Please note, though, that I’ve only seen Firefox support this scheme, as wonderful as it is!
Continue reading ‘Simple image view helper for Zend Framework’
Published on
September 13, 2007 in
PHP and works07.
The first day of talks is now over, and all in all I found it quite informative. so what did I learn?
Continue reading ‘php|works day 1′
Right now I’m sitting at a table with the likes of Cal Evans, Ben Ramsey, Sara Goleman, and Derick Rethans – all big players in the PHP world. And here I am, lowly ol’ me who does a bit of PHP at work. Wow. I feel a little starstruck (in a geeky kinda way), I have to admit!
OK, to be honest, I’m not saying anything, but, hey! I’m here. It’s a start.
Today I’m flying to Atlanta for the php|works conference. I am really looking forward to this as there seem to be quite a number of good talks – so many, in fact, that I had a hard time deciding which tracks to attend.
As part of this conference package I also had the opportunity to do the Professional PHP online course run by php|architect. I enjoyed that, and learned a fair bit, so I’m hopeful for the conference.
I’m sure you’ve seen the simple email address format validation function; they’re usually a simple regular expressing that just check the address portion (the user@example.org bit). That’s really only a bit of the validation that should be done. The RFC822 specs detail that the format of email addresses can be much larger, for example, it could be something like “Andrew Collington & Co.” <a.collington@example.org>, and, of course, the simple regex on that would fail. But even a check on the address format isn’t often enough… The user could enter a correctly formatted email address but simply have mis-spelled the address… they may accidentally type in user@yahooo.com, or user@hitmail.co.uk rather than hotmail.co.uk, and things like that. In which case you may want to check the MX and/or A record to see if its a valid domain. And whilst you’re doing that, why not check to see if it’s a commonly used email host that maybe they’ve typed in wrong?
So here is a class that will allow you to do all that in one easy method call:
Continue reading ‘Robust email address validator – with address suggestions!’
Today I was working on some sql for Oracle and connecting to the database with the PHP4 OCI extension. I’ve done this many times before, but today ran in to a little oddity that I thought was worth mentioning (mainly so I don’t forget and fall in to the trap again!)…
Continue reading ‘Oracle extension oddity’
Building a set of select lists that are dependant of each other can be a daunting task, but for a simple two-level list – in that what you select from one drop-down will changing what’s displayed in one or more other drop-downs – is actually quite easy thanks to Zend Frameworks and Prototype, both of which support Json.
Continue reading ‘Easy chained select lists using Zend Framework and Prototype’
Create a random thumbnail of a video file
Looking at sites like YouTube, you may think it’s quite hard to create a lot of different thumbnails from video files, and have them from random times within that file. But, no, it’s not! As this article shows, by using the very fabulous FFmpeg library, it’s actually a very short amount of code that’s required to create all those lovely random thumbnails.
Continue reading ‘Create a random thumbnail of a video file’
This simple function allows you to generate a random registration key in the format, ‘1224-54B1-7D35-5EF7′.
function registration_key()
{
return strtoupper(substr(chunk_split(sprintf('%03d%s',
rand(0,999), uniqid('')), 4, '-'), 0, -1));
}
Recent Comments