More Books

There may be more books available that we do not know of yet! You can search Amazon.com for PHP related stuff by using this form (or go directly to Amazon.de or Amazon.fr and search there):

Search Amazon for

about

Book Suggestion

If you have found a book, which is not listed here, please email such details presented about books here to the webmaster. Please also include a link to a suitable image. See the support page for more information.

SIDEBAR_END; site_header("Books"); // Show a table row for one book function book_show($one_book) { global $book_langs; list($title, $title_link, $author, $author_link, $image, $info, $info_link, $lang) = $one_book; // Default to english if (!$lang || !isset($book_langs[$lang]) ) { $lang = 'en'; } // Min. one title, max two titles if (is_array($title)) { $img_title = htmlspecialchars($title[0]); $title = '

' . $img_title . '
' . htmlspecialchars($title[1]) . '

'; } else { $img_title = htmlspecialchars($title); $title = '

' . $img_title . '

'; } // More than one author for this book if (is_array($author)) { // No link for the authors, simple author list if (!$author_link) { $temp = $author; } // Build links to the authors' pages else { for ($i=0; $i < count ($author); $i++) { if ($author_link[$i]) { $temp[] = "{$author[$i]}"; } else { $temp[] = $author[$i]; } } } $last = array_pop($temp); $author = join(', ', $temp) . ' & ' . $last; } else { if ($author_link) { $author = "{$author}"; } } // Horizontal delimiter row echo "
\n"; // Information row for the book echo "\n\n' . make_image("books/$image", $img_title) . "
\n\n$title\n

by $author

\n"; // Print any book information and more info link if ($info || $lang != "en") { echo "

\n"; if ($lang != "en") { echo "in " . $book_langs[$lang] . "
\n"; } echo str_replace("& ", "& ", $info) . "

\n"; } echo '

' . make_image("caret-rg.gif",">") . " more info" . "
\n

\n\n\n\n"; } // Generate book statistics (book numbers by languages) function book_stats($books, $btype) { $stats = array(); foreach ($books[$btype] as $number => $book) { if (isset($stats[$book[7]])) { $stats[$book[7]]++; } else { $stats[$book[7]] = 1; } } arsort($stats, SORT_NUMERIC); return $stats; } // Support for old type of parameters if (isset($_GET['type_lang']) && !empty($_GET['type_lang'])) { list($_GET['type'], $_GET['lang']) = explode("_", $_GET['type_lang']); } // Fallback to default type and language (the users' own language // preference, if nothing else is specified) if (!isset($book_types[$_GET['type']])) { $_GET['type'] = "PHP"; } if (!isset($book_langs[$_GET['lang']])) { if (!isset($book_langs[$LANG])) { $_GET['lang'] = 'en'; } else { $_GET['lang'] = $LANG; } } ?>

Books

Click on a book for more information or (in most cases) to purchase it. Choose one category and/or a language from the ones below to go to a listing of books about that subject. If you buy the book using the links on this page, you are helping to support PHP development! Note that the list of books is not static, it is always presented in a random order.

$book_list) { echo "\n \n \n\n"; } echo "
TypesLanguages
" . $book_types[$btype] . "\n"; $book_stat = book_stats($books, $btype); $first = TRUE; foreach ($book_stat as $blang => $number) { if (!$first) { echo ", \n"; } echo " " . $book_langs[$blang] . " ($number)"; $first = FALSE; } echo "\n
\n"; echo '

' . $book_types[$_GET['type']] . ' in ' . $book_langs[$_GET['lang']] . "

\n"; echo ''; shuffle($books[$_GET['type']]); foreach ($books[$_GET['type']] as $one_book) { if (isset($_GET['lang']) && $_GET['lang'] != $one_book[7]) { continue; } book_show($one_book); } echo "
\n"; site_footer(); /* vim: set noet ts=4 sw=4 ft=php: : */ ?>