Hypertext Preprocessor is a general-purpose programming language!

PHP for Mac

PHP for Mac

  -  22.47 MB  -  Open Source
PHP for Mac is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP for macOS powers everything from your blog to the most popular websites in the world.

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.

Instead of lots of commands to output HTML (as seen in C or Perl), pages contain HTML with embedded code that does "something" (in this case, output "Hi, I'm a PHP script!"). The code is enclosed in special start and end processing instructions that allow you to jump into and out of "PHP mode."

What distinguishes PHP for macOS from something like client-side JavaScript is that the code is executed on the server, generating HTML which is then sent to the client.

The client would receive the results of running that script, but would not know what the underlying code was. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve.

The best things in using PHP are that it is extremely simple for a newcomer, but offers many advanced features for a professional programmer. Don't be afraid reading the long list of PHP's features.

You can jump in, in a short time, and start writing simple scripts in a few hours.

How to Use

Install PHP via Homebrew with brew install php

Verify installation using php -v

Configure Apache or Nginx to use PHP

Test with a phpinfo() script in your web server

Use Composer to manage PHP dependencies

Write and run PHP scripts in Terminal or browser

Edit scripts using any code editor like VS Code

Update PHP using brew upgrade php

Use php -S localhost:8000 for local testing

System Requirements
  • macOS 10.15 (Catalina) or later
  • At least 4 GB RAM (8 GB recommended)
  • Homebrew package manager
  • Command Line Tools for Xcode
  • Internet connection for installation
PROS
  • Easy installation with Homebrew
  • Native macOS support for Apache
  • Strong community and documentation
  • Compatible with popular IDEs
  • Great for local web development
CONS
  • Older macOS may lack PHP support
  • Configuration can be complex
  • Built-in PHP deprecated in new macOS
  • Performance not optimized by default
  • Compatibility issues with some extensions
Also Available: Download PHP for Windows

Why is this app published on FileHorse? (More info)

What's new in this version:

Core:
- Fixed bug GH-22290 (AST pretty printing does not correctly handle strings containing NUL)
- Fixed bug GH-22206 (missing return in global register detection)
- Lock unmodified readonly properties for modification after clone-with

BCMath:
- Fixed GHSA-x692-q9x7-8c3f (Out-of-bounds write in bccomp())

Calendar:
- Fixed bug GH-22602 (gregoriantojd() and juliantojd() integer overflow with INT_MAX year).

Date:
- Update timelib to 2022.17
- Fixed bug GH-19803 (Parsing a string with a single white space does create an error).
- Fixed Unix timestamps in February of the year 0 are misparsed with @-notation.
- Fixed bug GH-11310 (__debugInfo does nothing on userland classes extending Date classes).

DBA:
- Fixed OOB read on malformed length field in dba flatfile handler

DOM:
- Fixed bug GH-22570 (Stack overflow when serializing a deeply nested DomXMLDocument)
- Fixed getElementsByClassName() item() returning the wrong element on random access

Exif:
- Fixed bug GH-11020 (exif_read_data() emits a spurious "Illegal IFD size" warning when an IFD is not followed by a next-IFD offset).

GD:
- Upgrade libgd

Hash:
- Fixed bug GH-18173 (ext/hash relies on implementation-defined malloc alignment).

ODBC:
- Fixed bug GH-22668 (Heap buffer over-read when a column value exceeds the driver-reported display size).

Opcache:
- Fixed bug GH-22158 (Tracing JIT dispatches the observer begin handler through the wrong run_time_cache slot on megamorphic calls).
- Fixed bug GH-22443 (Tracing JIT SIGSEGV on megamorphic dynamic calls from an undereferenced run_time_cache map_ptr offset).
- Fixed bug GH-21770 (Infinite recursion in property hook getter in opcache preloaded trait).

OpenSSL:
- Fixed timeout for supplemental read at end of a blocking stream in SSL stream wrapper.

Intl:
- Fixed Locale::lookup() and locale_lookup() to return NULL instead of the fallback locale when a language tag cannot be canonicalized.
- Fixed memory leaks when calling Collator::__construct() or Spoofchecker::__construct() twice.
- Fixed memory leak when calling IntlListFormatter::__construct() twice.
- Fixed IntlChar methods leaving stale global error state after successful calls.

PDO_ODBC:
- Fixed bug GH-20726 (Crash with ODBC connection pooling when the DSN carries no credentials).
- Fixed bug GH-22667 (Heap buffer over-read when a column value exceeds the driver-reported display size).
- Fixed bug GH-22666 (Heap buffer overflow when an output parameter value is longer than the declared maxlen).
- Fixed bug GH-22665 (Out-of-bounds write when the ODBC driver reports a diagnostic message length beyond the error buffer).

PGSQL:
- Fixed GHSA-7qpv-r5mr-78m4 (SQL injection via E'...' backslash breakout)

Phar:
- Fixed inconsistent handling of the magic ".phar" directory. Paths such as "/.phar" remain protected, while non-magic paths that merely start with ".phar" are handled consistently across file and directory creation, copying, ArrayAccess, stream lookup, directory iteration and extraction.
- Fixed GHSA-vc5h-9ppw-p5f3 (Crash via recursive symlinks)

PHPDBG:
- Fixed bug GH-17387 (Trivial crash in phpdbg lexer).
- Fixed fleaked lowercased lookup keys in phpdbg_resolve_opline_break.
- Fixed off-by-one in phpdbg_safe_class_lookup() causing class lookups to always fail during phpdbg's signal-safe interruption path.

Reflection:
- Fixed bug GH-22324 (Ignore leading namespace separator in ReflectionParameter::__construct()).
- Fixed bug GH-22441 (ReflectionClass::hasProperty() and getProperty() ignore dynamic properties shadowing a private parent property).
- Fixed bug GH-22658 (ReflectionConstant::__toString() with a string value with null bytes truncates output).
- Fixed bug GH-22683 (Reflection(Class)Constant::__toString() should not warn on NAN conversions).
- Fixed bug GH-22681 (Reflection*::__toString() truncates on null bytes).

Session:
- Fixed bug GH-21314 (Different session garbage collector behavior between PHP 8.3 and PHP 8.5).

SPL:
- Fix class_parents for classes with leading slash in non-autoload mode.
- Ignore leading back-slash in class_parents(), class_implements(), and class_uses().
- Fixed bug GH-16217 (SplFileObject::fputcsv() on an uninitialized object segfaults).

Standard:
- Fixed bug GH-22395 (base_convert() outputs at most 64 characters)
- Fixed bug GH-22678 (Use-after-free in array_multisort() when the comparator mutates the array being sorted)

URI:
- Fixed behavior of UriWhatWgUrl wither methods with regards to empty opaque hosts
- Fixed bug GH-22628 (Percent-encoding of caret in WHATWG URL paths is not performed)
- Fixed bug GH-22629 (WHATWG Validation error incorrect with empty host and non-empty userinfo)

Zip:
- Fixed bug GH-22649 (ZipArchive::setCommentName() and setCommentIndex() could crash after overwriting an entry and resetting its inherited unchanged comment)
- Fixed bug GH-21705 (ZipArchive::getFromIndex() ignores ZipArchive::FL_UNCHANGED for deleted entries)