PHP Version Checker
Check which PHP version a website runs, whether a PHP version is still supported and when it reaches end of life, or the minimum PHP version your code needs.
Version and code checks run in your browserEnter a website to see which PHP version it reports.
Key Features
- Enter a website address to see the PHP version it reports in its X-Powered-By header, with signs of PHP when the version is hidden
- Look up any PHP version from 5.0 to 8.5 and see whether it gets active support, security fixes only, or has reached end of life
- Paste php -v output, a phpinfo() line or an X-Powered-By header and the version number is picked out automatically
- See the release date, support end dates, the latest patch release, and whether the version is affected by PHP2Shell
- Paste PHP code to find the minimum PHP version it needs, with the feature and line number behind each requirement
- Detects syntax from PHP 5.6 to 8.5, including enums, match, readonly properties, property hooks and the pipe operator
- Flags removed functions such as mysql_query(), each() and create_function(), and deprecations such as implicitly nullable parameters
- Version lookups and code checks run in your browser. Your code is never uploaded
How to Use the PHP Version Checker
- 1To check a website, enter its address on the Website tab and click Check. The checker requests the homepage (for WordPress sites that hide it there, also the public /wp-json/ address) and reads the PHP version from the response headers.
- 2If the site hides its version, find it on the server with php -v or in your hosting panel, then enter it on the Version tab (pasting the php -v output works too).
- 3Read the status: active support, security fixes only, or end of life, with the exact dates from php.net, the latest patch release and whether PHP2Shell affects it.
- 4To check code, open the Code compatibility tab and paste a PHP file or snippet.
- 5Review the minimum PHP version, the compatibility row for each PHP release, and the list of features with their line numbers.
PHP Versions and Support Explained
PHP releases one new minor version a year, usually in late November or early December. Each version moves through active support, security-only support and end of life. Knowing where your version stands tells you how urgently you need to upgrade.
How the PHP release cycle works
According to php.net, each PHP branch is fully supported for two years after its first stable release, with reported bugs and security issues fixed in regular point releases. It then gets two more years of fixes for critical security issues only, released as needed. After those four years the branch reaches end of life and gets no more updates. Current branches stop receiving support on 31 December: PHP 8.4, for example, has active support until 31 Dec 2026 and security fixes until 31 Dec 2028.
Which PHP versions are supported right now
As of October 2026, PHP 8.5 and 8.4 have active support, PHP 8.3 and 8.2 get security fixes only, and every version from 8.1 down has reached end of life. Security support for PHP 8.2 ends on 31 Dec 2026. The checker above calculates each status from today's date, so it stays correct as these dates pass.
How to check your PHP version
Enter a site's address on the Website tab to see the version it reports in its X-Powered-By header. On the server itself, run php -v, but note that the command line can use a different PHP binary than your website. To see what the web server runs, upload a file containing <?php echo PHP_VERSION; or phpinfo(); open it in a browser, then delete it. In WordPress, go to Tools → Site Health → Info and open the Server section.
Why a website might hide its PHP version
The X-Powered-By header is controlled by the expose_php setting in php.ini. Many hosts turn it off, and proxies or CDNs often remove it, so a missing header doesn't mean a site isn't running PHP. Hiding the version doesn't make an outdated PHP any safer; only upgrading does.
How the code compatibility check works
The checker removes comments and strings, then looks for the syntax, functions and classes listed in the official php.net migration guides for every release from PHP 5.6 to 8.5. The highest version it finds is the minimum your code needs. Removed functions set an upper limit, and deprecated features show which versions will print deprecation notices. It's pattern matching rather than a full parser: it doesn't run your code, follow includes, or check extensions and Composer dependencies. Treat the result as a strong hint and confirm it with your tests or a tool like PHPCompatibility for PHP_CodeSniffer.
Polyfills and the minimum version
Built-in functions such as str_contains() or array_find() can be added to older PHP versions with a polyfill, for example the symfony/polyfill packages or the compat.php file that WordPress ships. Syntax such as enums, match expressions or readonly properties can't be polyfilled. That's why the checker shows the version needed for the syntax alone next to the overall minimum, and marks functions and classes as polyfillable.
Frequently Asked Questions
How do I check my PHP version?
For a website, enter its address on the Website tab. On the server, run php -v, or create a PHP file containing <?php echo PHP_VERSION; and open it in your browser to see the version your web server uses. In WordPress, go to Tools → Site Health → Info → Server. Paste what you find on the Version tab to see whether that version is still supported.
What is the latest PHP version?
PHP 8.5 is the newest branch. It was released on 20 November 2025, and as of October 2026 its latest patch release is 8.5.12. A new minor version usually comes out each year in late November or early December.
Is PHP 7.4 still supported?
No. PHP 7.4 reached end of life on 28 November 2022 and no longer gets security fixes from the PHP project. Some Linux distributions and hosts maintain their own patched packages, but php.net strongly urges users of unsupported versions to upgrade to a current one.
Which PHP versions are still supported?
As of October 2026, PHP 8.5 and 8.4 have active support, while PHP 8.3 and 8.2 get security fixes only (8.2 until 31 Dec 2026, 8.3 until 31 Dec 2027). PHP 8.1 and older are end of life. The table above lists every branch and works out each status from today's date.
Is my PHP version affected by PHP2Shell?
On PHP 8.2 to 8.5, every release below 8.2.35, 8.3.36, 8.4.27 and 8.5.12 is affected by PHP2Shell (CVE-2026-109618 and CVE-2026-109619), and each result above says whether yours is. PHP 8.1 and older get no fixed release. The PHP2Shell Checker explains who is at risk and what to do.
How do I find the minimum PHP version my code needs?
Open the Check code compatibility tab and paste your code. The checker lists every feature that needs a specific PHP version, such as enums (8.1) or the nullsafe operator (8.0), and reports the highest one as the minimum. It also flags removed functions like mysql_query() or each() that stop code from running on newer versions.
Can this tool check a website's PHP version from its URL?
Yes. Enter the address on the Website tab. Browsers can't read another site's response headers, so PureKit's server requests the site's homepage (for WordPress sites that hide it there, also the public /wp-json/ address) and reads its X-Powered-By header. Many sites hide the version; in that case the checker shows signs that the site runs PHP, such as a PHPSESSID cookie or WordPress, and you'll need to check on the server.
Why does my server show an older patch number than the latest release?
Linux distributions such as Ubuntu, Debian and Red Hat often backport security fixes into their own PHP packages without changing the upstream version number. A version like 8.1.2-1ubuntu2.14 can include fixes released long after 8.1.2. Check your distribution's security notices to see what is patched.
Is my code uploaded anywhere?
No. Code analysis and version lookups run in your browser, and nothing you paste is sent anywhere. Only the Website tab uses PureKit's server: it receives the address you enter, requests that site's homepage (plus /wp-json/ for WordPress sites), and returns what the headers show. The address isn't stored; our analytics only count each check by outcome, such as version found or hidden.