BuildFinding your footing

PHP Turns 31 — The History That Matters Is the Elephant

The version timeline is everywhere. The resume logger, the Usenet post, and the sideways doodle that became a mascot — that's the birthday story worth telling.

6 min read · June 10, 2026

#Programming #WebDevelopment #PHP #SoftwareDevelopment #OpenSource

Resume logger. Sideways doodle. Still running.
Resume logger. Sideways doodle. Still running.

Most engineers meet PHP as a punchline long before they meet it as infrastructure. WordPress. Laravel. That legacy monolith nobody wants to touch until payroll week. Reputation first. Dependency later — often years later, when you're debugging something you didn't know you owned.

After three decades, the dependency won. PHP still runs on the majority of sites where a server-side language can be detected at all. The punchline and the plumbing coexist — which is exactly the kind of improbable outcome this birthday piece is about.

Happy Birthday, PHP — What We're Actually Celebrating

It's not a language birthday in the textbook sense — it started as Personal Home Page Tools, resume analytics with a guestbook mode (official history). PHP turned 31 on June 8, 1995, the day Rasmus Lerdorf posted PHP Tools version 1.0 to comp.infosystems.www.authoring.cgi (25 Years of PHP). Not a manifesto. Not a framework launch. A Usenet announcement for CGI binaries that logged who visited your homepage.

The community kept that date because it's shareable. Rasmus had been hacking since 1994 — resume traffic counters in C, the usual personal-site tinkering (official history). 1995 is when the tools left his machine and invited strangers to patch them. Open from the first post, under the GNU Public License. Patch culture wasn't a later phase. It was the product.

June 8, 1995 — the post that stuck

The announcement reads like a sysadmin wish list, not a whitepaper. Small tight CGI binaries in C. Private access logs. Daily counters. Referrer tracking. Domain-based password protection. Forms you could reuse on the next page. Guestbooks in about two minutes (Usenet announcement).

And the constraints that actually mattered on mid-90s shared hosting: no root access, no Perl, no server-side includes, no httpd log files — install in ~/public_html and go (Usenet announcement). The only requirement was permission to run your own CGI programs.

That's the origin most birthday posts skip. PHP didn't open with "learn computer science." It opened with "can your host run a CGI binary you uploaded?"

Thirty-one years of "good enough to ship"

The reputation lagged the install base for decades. PHP 3 was already on tens of thousands of domains before the press release landed. Today, detection surveys still put PHP on roughly seven in ten sites with a known server-side stack — methodology-dependent, not a census, but directionally hard to argue with.

php.net's own tagline still sounds like a birthday toast from someone who ships: fast, flexible, pragmatic — powering everything from your blog to the most popular websites in the world. Version 8.x is actively maintained. The punchline didn't retire the default.

Before the Elephant — a Resume Hack That Wouldn't Stay Personal

Personal Home Page Tools did one job well: tell Rasmus who was looking at his online resume. Hit counters. Logs. Simple dynamic pages for people who had CGI access and nothing else.

The name tells you the scope — personal. Then strangers needed guestbooks, databases, and forms that remembered what you typed. Rasmus rewrote the suite more than once in 1995 alone — Form Interpreter merged with Tools, tags embedded in HTML, Perl-like variables showing up in places that would make modern linters weep (official history, community timeline). PHP/FI was the awkward adolescence: definitely not a pristine language design, definitely something people kept installing anyway.

By May 1998, a Netcraft survey cited in the official history counted nearly 60,000 domains with PHP in their headers — about 1% of the entire web at the time. Still mostly one person's codebase with helpers. Still growing.

PHP/FI → PHP 3 — when strangers rewrote your side project

By 1997, Andi Gutmans and Zeev Suraski needed PHP/FI for a university eCommerce project and found it too slow (official history). They didn't fork quietly. They approached Rasmus, rewrote the parser, and shipped what became PHP 3 in June 1998 — already installed on over 70,000 domains at the announcement.

The rename mattered: PHP: Hypertext Preprocessor, a recursive backronym that dropped the "personal homepage" ceiling (official history). It's not X — it's Y: not a resume accessory anymore, but a language strangers would extend with modules and databases.

PHP 6 never shipped — Unicode-first plans abandoned, namespaces and traits landing in PHP 5.x instead (official history). On-brand for a project that wins by pragmatic rewrites, not linear version theology.

Zend Engine and the boring wins

The milestones worth knowing without a spec sheet: PHP 4 (2000) brought the Zend Engine. PHP 5 (2004) rebuilt the object model. PHP 7 (2015) doubled down on performance. PHP 8 (2020) added JIT, named arguments, union types (official history). Each pass answered the same question: can this thing still run the web without embarrassing you?

That's the through-line until 1998 — and then the sideways letters showed up.

The ElePHPant — Sideways Letters and a Collector Who Said Yes

Every PHP birthday post name-checks the mascot and moves on. Slow down here.

It's not corporate branding. It's a November 1998 evening in France. François Buffière, a developer friend, came to Vincent Pontier's home to demo this language called PHP while Pontier — an HR executive and graphic designer, not a core engineer — doodled the letters PHP in capitals on scrap paper (Pontier interview, community history).

Pontier noticed the letters formed an elephant in profile if you tilted your head. He emailed the sketch to Jean-Pierre Dezelus, an early French PHP advocate he didn't know yet — who happened to collect elephants (Pontier interview). Dezelus asked for an elephant styled like the official PHP logo: blue oval, black outline gradient (Pontier interview, community history).

When they uploaded it, Pontier named the file elePHPant — mid-PHP, mid-elephant, pun intact (Pontier interview). He coined the word the same night as the drawing. Wikipedia's summary of the design is almost insultingly simple: the letters form an elephant if you view them sideways. That's the whole brief. No focus group. No brand agency.

From download to desk mascot

Picture a scene you've probably lived: friend coding on your couch, you half-listening, scrap paper, sudden pattern recognition, email to a stranger who collects elephants. Dezelus said yes. Logo went up for download. Community did the rest.

The logo spread through the community long before anyone stuffed it. php.net lists the ElePHPant as the project's official mascot; official plush toys designed by Pontier appear occasionally, with an explicit warning to beware imitators. Only Pontier-original designs count as community-official.

The plush cult arrived roughly a decade later — logo luck in 1998, conference desk mascot culture not until ~2007 (community history, field guide). Laravel red, Symfony black, purple PHP Women editions followed. Proof of culture, not a shopping list. The elephant earned its fame slowly, the same way PHP earned default-status.

Pontier's own read on impact? Some fun (Pontier interview). He was proud to contribute joy to an engineer community as a non-engineer. Developers joke — without scientific evidence, he notes — that a plush elePHPant on the monitor reduces bugs. Superstition, sure. Also the most honest fan relationship a language mascot has ever had.

That's the gap most reputation debates miss: PHP's symbol wasn't designed in a boardroom. It was a happy accident forwarded to an elephant collector, then adopted because engineers like inside jokes that scale.

What the Elephant Gets Right About PHP

Improbable accident, community adoption, infrastructure nobody planned for — same biography for the language and the mascot.

You can still mock PHP on Twitter. You probably still depend on it somewhere in the stack — a CMS, a hosting panel, a cron job nobody documented. WordPress alone would be enough weight to make "dead language" tweets age poorly.

It's not a mascot for a perfect platform — it's a mascot for a platform that kept showing up because shared hosting, patch culture, and "good enough to ship tonight" beat elegance on a slide deck.

Happy birthday, PHP. The elephant knew first.

More in Build

← Back to hub