Online documentation

You can read the documentation online in various languages. The Documentation HOWTO, and archive manuals are also available from our documentation page.

Other formats

The manual is also available via *nix style man pages. To install and use:

HTML Help viewers

File sizes and dates

If you are using a capable browser, the file size and date will show up when you move the mouse above a link. If you cannot view this information, or would like to see all the information, you can click here to see all the file sizes and dates.

'; site_header("Download documentation", array("current" => "docs")); // Format to look for $formats = array( "Single HTML file" => "html.gz", "Many HTML files" => "tar.gz", # "Many PDF files" => "pdf.tar.gz", # "PDF" => "pdf", "HTML Help file" => "chm", "HTML Help file (with user notes)" => "chm", ); ?>

Download documentation

The PHP manual is available in a selection of languages and formats. Pick a language and format from the table below to start downloading.

Notes to read before you download

$language) { if(isset($INACTIVE_ONLINE_LANGUAGES[$langcode]) && $MYSITE !== 'http://docs.php.net/') { continue; } // Go through all possible manual formats foreach ($formats as $formatname => $extension) { $filepath = $_SERVER['DOCUMENT_ROOT'] . '/distributions/manual/'; if ($formatname === 'HTML Help file (with user notes)') { $filename = "php_enhanced_$langcode.$extension"; } else { $filename = "php_manual_$langcode.$extension"; } $filepath .= $filename; // File named after the language and format exists if (file_exists($filepath)) { // Mirror selection download URL $link_to = "/get/$filename/from/a/mirror"; // Try to get size and changed date $size = @filesize($filepath); $changed = @filemtime($filepath); // Size available, collect information if ($size !== FALSE) { $files[$langcode][$formatname] = array( $link_to, (int) ($size/1024), date("j M Y", $changed), $extension ); $found_formats[$formatname] = 1; } } } } /* {{{ FIXME: Special handling for the extended html help format since it doesn't follow the "naming rules" * (mostly copy&paste from the loop above) * Feb 20, 2009: Commenting this out as we currently don't build or work on it $formats['Extended HTML Help'] = "zip"; // Add a link to the xchm docs in the table header $actual_file = $_SERVER['DOCUMENT_ROOT'] . "/distributions/manual/php_manual_chm.zip"; if (file_exists($actual_file)) { $link_to = "/get/php_manual_chm.zip/from/a/mirror"; $size = @filesize($actual_file); $changed = @filemtime($actual_file); if ($size !== FALSE) { $files["en"]["zip"] = array( $link_to, (int) ($size/1024), date("j M Y", $changed), "zip" ); $found_formats["xchm"] = "zip"; } } }}} */ if (count($found_formats) == 0) { echo "

This mirror has no documentation files for download.

"; } else { echo '' . "\n" . "\n \n"; // Print out the name of the formats foreach ($formats as $formatname => $extension) { if (!isset($found_formats[$formatname])) { continue; } echo " \n"; } echo " \n"; foreach ($files as $langcode => $lang_files) { // See if current language is the preferred one if ($langcode == $LANG) { $preflang = TRUE; } else { $preflang = FALSE; } // Highlight manual in preferred language if ($preflang) { $cellclass = ' class="highlight"'; } else { $cellclass = ""; } echo "\n\n"; foreach ($formats as $formatname => $extension) { // Skip if no file found if (!isset($found_formats[$formatname])) { continue; } echo "\n"; } // End table row echo "\n"; } echo "
 $formatname
" . $LANGUAGES[$langcode] . ""; if (!isset($lang_files[$formatname])) { echo " "; } else { $fileinfo = $lang_files[$formatname]; echo "$fileinfo[3]"; // Sizes required to be printed out (URL parameter or preferred language) if (isset($_GET['sizes']) || $preflang) { echo "
Size: $fileinfo[1]Kb
Date: $fileinfo[2]
"; } } // End table cell echo "
\n"; } ?>