Documentation online

You can read the documentation online in various languages, even in printer friendly formats.

Tip for Linux and BSD users

A free CHM viewer is available for Linux, *BSD and Solaris, which is capable of reading the CHMs available here, except the extended CHMs. It is called xCHM.

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"); // Format to look for $formats = array( "Single HTML" => "html.gz", "Many HTML files" => "tar.gz", "PDF" => "pdf.bz2", "PalmPilot DOC" => "doc.pdb", "PalmPilot iSilo" => "isilo.pdb", "Windows HTML Help" => "chm" ); ?>

Download documentation

The PHP manual is available in a selection of languages and formats. Note that the English version should be considered the most accurate, since translations are based on that version. Most of the translations are not complete, and contain English parts. Pick a language and format from the table below to start downloading.

Note that the packaged HTML version of the manual (tar.gz) doesn't contain any directories, so all of the files will be dumped into your current working directory when you expand the archive unless the tool you use does otherwise.

$language) { // Go through all possible manual formats foreach ($formats as $formatname => $extension) { // Actual filename of the file $actual_file = $_SERVER['DOCUMENT_ROOT'] . "/distributions/manual/php_manual_$langcode.$extension"; // File named after the language and format exists if (file_exists($actual_file)) { // Mirror selection download URL $link_to = "/get/php_manual_$langcode.$extension/from/a/mirror"; // Try to get size and changed date $size = @filesize($actual_file); $changed = @filemtime($actual_file); // Size available, collect information if ($size !== FALSE) { $files[$langcode][$extension] = array( $link_to, (int) ($size/1024), date("j M Y", $changed), $extension ); if (!in_array($extension, array_keys($found_formats))) { $found_formats[$formatname] = $extension; } } } } } 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 (!in_array($extension, array_values($found_formats))) { 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; } // Additional link for special French version of the manual $language = $LANGUAGES[$langcode]; if ($langcode == "fr") { $language .= '
[Special French]'; } // Highlight manual in preferred language if ($preflang) { $cellclass = ' class="highlight"'; } else { $cellclass = ""; } echo "\n\n"; } // End table row echo "\n"; } echo "
 $formatname
$language\n"; foreach ($formats as $formatname => $extension) { // Skip if no file found if (!in_array($extension, array_values($found_formats))) { continue; } echo ""; if (!isset($lang_files[$extension])) { echo " "; } else { $fileinfo = $lang_files[$extension]; echo "$fileinfo[3]"; // Sizes required to be printed out (URL parameter or preferred language) if ($sizes || $preflang) { echo "
Size: $fileinfo[1]Kb
Date: $fileinfo[2]
"; } } // Quite bad looking code tweak to add a link to the extended CHM (en only!) if ($langcode == "en" && $extension == "chm") { echo '
extended chm'; } // End table cell echo "
\n"; } ?>

Documentation howto

The PHP Documentation Team has a documentation howto, including coverage on how to set up a working environment on Unix/Linux/Windows, how to build HTML formatted docs from the XML sources, what conventions to follow when writing documentation, etc. If you are interested in the process, or would like to start/join a translation, you can download the howto. Note, that it is also readable online.