Wednesday, August 6, 2008

PHP Zip File Functions

PHP Zip File Introduction
The Zip files functions allows you to read ZIP files.


--------------------------------------------------------------------------------

Installation
For the Zip file functions to work on your server, these libraries must be installed:

The ZZIPlib library by Guido Draheim: Download the ZZIPlib library
The Zip PELC extension: Download the Zip PELC extension
Installation on Linux Systems

PHP 5+: Zip functions and the Zip library is not enabled by default and must be downloaded from the links above. Use the --with-zip=DIR configure option to include Zip support.

Installation on Windows Systems

PHP 5+: Zip functions is not enabled by default, so the php_zip.dll and the ZZIPlib library must be downloaded from the link above. php_zip.dll must be enabled inside of php.ini.

To enable any PHP extension, the PHP extension_dir setting (in the php.ini file) should be set to the directory where the PHP extensions are located. An example extension_dir value is c:\php\ext.


--------------------------------------------------------------------------------

PHP Zip File Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
zip_close() Closes a ZIP file 4
zip_entry_close() Closes an entry in the ZIP file 4
zip_entry_compressedsize() Returns the compressed size of an entry in the ZIP file 4
zip_entry_compressionmethod() Returns the compression method of an entry in the ZIP file 4
zip_entry_filesize() Returns the actual file size of an entry in the ZIP file 4
zip_entry_name() Returns the name of an entry in the ZIP file 4
zip_entry_open() Opens an entry in the ZIP file for reading 4
zip_entry_read() Reads from an open entry in the ZIP file 4
zip_open() Opens a ZIP file 4
zip_read() Reads the next entry in a ZIP file 4


--------------------------------------------------------------------------------

PHP Zip File Constants
NONE

PHP XML Parser Functions

PHP XML Parser Introduction
The XML functions lets you parse, but not validate, XML documents.

XML is a data format for standardized structured document exchange. More information on XML can be found in our XML Tutorial.

This extension uses the Expat XML parser.

Expat is an event-based parser, it views an XML document as a series of events. When an event occurs, it calls a specified function to handle it.

Expat is a non-validating parser, and ignores any DTDs linked to a document. However, if the document is not well formed it will end with an error message.

Because it is an event-based, non validating parser, Expat is fast and well suited for web applications.

The XML parser functions lets you create XML parsers and define handlers for XML events.


--------------------------------------------------------------------------------

Installation
The XML functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP XML Parser Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
utf8_decode() Decodes an UTF-8 string to ISO-8859-1 3
utf8_encode() Encodes an ISO-8859-1 string to UTF-8 3
xml_error_string() Gets an error string from the XML parser 3
xml_get_current_byte_index() Gets the current byte index from the XML parser 3
xml_get_current_column_number() Gets the current column number from the XML parser 3
xml_get_current_line_number() Gets the current line number from the XML parser 3
xml_get_error_code() Gets an error code from the XML parser 3
xml_parse() Parses an XML document 3
xml_parse_into_struct() Parse XML data into an array 3
xml_parser_create_ns() Create an XML parser with namespace support 4
xml_parser_create() Create an XML parser 3
xml_parser_free() Free an XML parser 3
xml_parser_get_option() Get options from an XML parser 3
xml_parser_set_option() Set options in an XML parser 3
xml_set_character_data_handler() Set handler function for character data 3
xml_set_default_handler() Set default handler function 3
xml_set_element_handler() Set handler function for start and end element of elements 3
xml_set_end_namespace_decl_handler() Set handler function for the end of namespace declarations 4
xml_set_external_entity_ref_handler() Set handler function for external entities 3
xml_set_notation_decl_handler() Set handler function for notation declarations 3
xml_set_object() Use XML Parser within an object 4
xml_set_processing_instruction_handler() Set handler function for processing instruction 3
xml_set_start_namespace_decl_handler() Set handler function for the start of namespace declarations 4
xml_set_unparsed_entity_decl_handler() Set handler function for unparsed entity declarations 3


--------------------------------------------------------------------------------

PHP XML Parser Constants
Constant
XML_ERROR_NONE (integer)
XML_ERROR_NO_MEMORY (integer)
XML_ERROR_SYNTAX (integer)
XML_ERROR_NO_ELEMENTS (integer)
XML_ERROR_INVALID_TOKEN (integer)
XML_ERROR_UNCLOSED_TOKEN (integer)
XML_ERROR_PARTIAL_CHAR (integer)
XML_ERROR_TAG_MISMATCH (integer)
XML_ERROR_DUPLICATE_ATTRIBUTE (integer)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)
XML_ERROR_PARAM_ENTITY_REF (integer)
XML_ERROR_UNDEFINED_ENTITY (integer)
XML_ERROR_RECURSIVE_ENTITY_REF (integer)
XML_ERROR_ASYNC_ENTITY (integer)
XML_ERROR_BAD_CHAR_REF (integer)
XML_ERROR_BINARY_ENTITY_REF (integer)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)
XML_ERROR_MISPLACED_XML_PI (integer)
XML_ERROR_UNKNOWN_ENCODING (integer)
XML_ERROR_INCORRECT_ENCODING (integer)
XML_ERROR_UNCLOSED_CDATA_SECTION (integer)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)
XML_OPTION_CASE_FOLDING (integer)
XML_OPTION_TARGET_ENCODING (integer)
XML_OPTION_SKIP_TAGSTART (integer)
XML_OPTION_SKIP_WHITE (integer)

PHP String Functions

PHP String Introduction
The string functions allow you to manipulate strings.


--------------------------------------------------------------------------------

Installation
The string functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP String Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
addcslashes() Returns a string with backslashes in front of the specified characters 4
addslashes() Returns a string with backslashes in front of predefined characters 3
bin2hex() Converts a string of ASCII characters to hexadecimal values 3
chop() Alias of rtrim() 3
chr() Returns a character from a specified ASCII value 3
chunk_split() Splits a string into a series of smaller parts 3
convert_cyr_string() Converts a string from one Cyrillic character-set to another 3
convert_uudecode() Decodes a uuencoded string 5
convert_uuencode() Encodes a string using the uuencode algorithm 5
count_chars() Returns how many times an ASCII character occurs within a string and returns the information 4
crc32() Calculates a 32-bit CRC for a string 4
crypt() One-way string encryption (hashing) 3
echo() Outputs strings 3
explode() Breaks a string into an array 3
fprintf() Writes a formatted string to a specified output stream 5
get_html_translation_table() Returns the translation table used by htmlspecialchars() and htmlentities() 4
hebrev() Converts Hebrew text to visual text 3
hebrevc() Converts Hebrew text to visual text and new lines (\n) into
3
html_entity_decode() Converts HTML entities to characters 4
htmlentities() Converts characters to HTML entities 3
htmlspecialchars_decode() Converts some predefined HTML entities to characters 5
htmlspecialchars() Converts some predefined characters to HTML entities 3
implode() Returns a string from the elements of an array 3
join() Alias of implode() 3
levenshtein() Returns the Levenshtein distance between two strings 3
localeconv() Returns locale numeric and monetary formatting information 4
ltrim() Strips whitespace from the left side of a string 3
md5() Calculates the MD5 hash of a string 3
md5_file() Calculates the MD5 hash of a file 4
metaphone() Calculates the metaphone key of a string 4
money_format() Returns a string formatted as a currency string 4
nl_langinfo() Returns specific local information 4
nl2br() Inserts HTML line breaks in front of each newline in a string 3
number_format() Formats a number with grouped thousands 3
ord() Returns the ASCII value of the first character of a string 3
parse_str() Parses a query string into variables 3
print() Outputs a string 3
printf() Outputs a formatted string 3
quoted_printable_decode() Decodes a quoted-printable string 3
quotemeta() Quotes meta characters 3
rtrim() Strips whitespace from the right side of a string 3
setlocale() Sets locale information 3
sha1() Calculates the SHA-1 hash of a string 4
sha1_file() Calculates the SHA-1 hash of a file 4
similar_text() Calculates the similarity between two strings 3
soundex() Calculates the soundex key of a string 3
sprintf() Writes a formatted string to a variable 3
sscanf() Parses input from a string according to a format 4
str_ireplace() Replaces some characters in a string (case-insensitive) 5
str_pad() Pads a string to a new length 4
str_repeat() Repeats a string a specified number of times 4
str_replace() Replaces some characters in a string (case-sensitive) 3
str_rot13() Performs the ROT13 encoding on a string 4
str_shuffle() Randomly shuffles all characters in a string 4
str_split() Splits a string into an array 5
str_word_count() Count the number of words in a string 4
strcasecmp() Compares two strings (case-insensitive) 3
strchr() Finds the first occurrence of a string inside another string (alias of strstr()) 3
strcmp() Compares two strings (case-sensitive) 3
strcoll() Locale based string comparison 4
strcspn() Returns the number of characters found in a string before any part of some specified characters are found 3
strip_tags() Strips HTML and PHP tags from a string 3
stripcslashes() Unquotes a string quoted with addcslashes() 4
stripslashes() Unquotes a string quoted with addslashes() 3
stripos() Returns the position of the first occurrence of a string inside another string (case-insensitive) 5
stristr() Finds the first occurrence of a string inside another string (case-insensitive) 3
strlen() Returns the length of a string 3
strnatcasecmp() Compares two strings using a "natural order" algorithm (case-insensitive) 4
strnatcmp() Compares two strings using a "natural order" algorithm (case-sensitive) 4
strncasecmp() String comparison of the first n characters (case-insensitive) 4
strncmp() String comparison of the first n characters (case-sensitive) 4
strpbrk() Searches a string for any of a set of characters 5
strpos() Returns the position of the first occurrence of a string inside another string (case-sensitive) 3
strrchr() Finds the last occurrence of a string inside another string 3
strrev() Reverses a string 3
strripos() Finds the position of the last occurrence of a string inside another string (case-insensitive) 5
strrpos() Finds the position of the last occurrence of a string inside another string (case-sensitive) 3
strspn() Returns the number of characters found in a string that contains only characters from a specified charlist 3
strstr() Finds the first occurrence of a string inside another string (case-sensitive) 3
strtok() Splits a string into smaller strings 3
strtolower() Converts a string to lowercase letters 3
strtoupper() Converts a string to uppercase letters 3
strtr() Translates certain characters in a string 3
substr() Returns a part of a string 3
substr_compare() Compares two strings from a specified start position (binary safe and optionally case-sensitive) 5
substr_count() Counts the number of times a substring occurs in a string 4
substr_replace() Replaces a part of a string with another string 4
trim() Strips whitespace from both sides of a string 3
ucfirst() Converts the first character of a string to uppercase 3
ucwords() Converts the first character of each word in a string to uppercase 3
vfprintf() Writes a formatted string to a specified output stream 5
vprintf() Outputs a formatted string 4
vsprintf() Writes a formatted string to a variable 4
wordwrap() Wraps a string to a given number of characters 4


--------------------------------------------------------------------------------

PHP String Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
CRYPT_SALT_LENGTH Contains the length of the default encryption method for the
system. For standard DES encryption, the length is 2
CRYPT_STD_DES Set to 1 if the standard DES-based encryption with a 2 character salt is supported, 0 otherwise
CRYPT_EXT_DES Set to 1 if the extended DES-based encryption with a 9 character salt is supported, 0 otherwise
CRYPT_MD5 Set to 1 if the MD5 encryption with a 12 character salt starting with $1$ is supported, 0 otherwise
CRYPT_BLOWFISH Set to 1 if the Blowfish encryption with a 16 character salt starting with $2$ or $2a$ is supported, 0 otherwise0
HTML_SPECIALCHARS
HTML_ENTITIES
ENT_COMPAT
ENT_QUOTES
ENT_NOQUOTES
CHAR_MAX
LC_CTYPE
LC_NUMERIC
LC_TIME
LC_COLLATE
LC_MONETARY
LC_ALL
LC_MESSAGES
STR_PAD_LEFT
STR_PAD_RIGHT
STR_PAD_BOTH

PHP SimpleXML Functions

PHP SimpleXML Introduction
The SimpleXML functions lets you convert XML to an object.

This object can be processed, like any other object, with normal property selectors and array iterators.

Some of these functions requires the newest PHP build.


--------------------------------------------------------------------------------

Installation
The SimpleXML functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP SimpleXML Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
__construct() Creates a new SimpleXMLElement object 5
addAttribute() Adds an attribute to the SimpleXML element 5
addChild() Adds a child element the SimpleXML element 5
asXML() Gets an XML string from a SimpleXML element 5
attributes() Gets a SimpleXML element's attributes 5
children() Gets the children of a specified node 5
getDocNamespaces() Gets the namespaces of an XML document 5
getName() Gets the name of a SimpleXML element 5
getNamespaces() Gets the namespaces from XML data 5
registerXPathNamespace() Creates a namespace context for the next XPath query 5
simplexml_import_dom() Gets a SimpleXMLElement object from a DOM node 5
simplexml_load_file() Gets a SimpleXMLElement object from an XML document 5
simplexml_load_string() Gets a SimpleXMLElement object from an XML string 5
xpath() Runs an XPath query on XML data 5


--------------------------------------------------------------------------------

PHP SimpleXML Constants
None

PHP MySQL Functions

PHP MySQL Introduction
The MySQL functions allows you to access MySQL database servers.


--------------------------------------------------------------------------------

Installation
For the MySQL functions to be available, you must compile PHP with MySQL support.

For compiling, use --with-mysql=DIR (the optional DIR points to the MySQL directory).

Note: For full functionality of MySQL versions greater than 4.1., use the MySQLi extension instead. If you would like to install both the mysql extension and the mysqli extension you should use the same client library to avoid any conflicts.

Installation on Linux Systems

PHP 5+: MySQL and the MySQL library is not enabled by default. Use the --with-mysql=DIR configure option to include MySQL support and download headers and libraries from www.mysql.com.

Installation on Windows Systems

PHP 5+: MySQL is not enabled by default, so the php_mysql.dll must be enabled inside of php.ini. Also, PHP needs access to the MySQL client library. A file named libmysql.dll is included in the Windows PHP distribution, and in order for PHP to talk to MySQL this file needs to be available to the Windows systems PATH.

To enable any PHP extension, the PHP extension_dir setting (in the php.ini file) should be set to the directory where the PHP extensions are located. An example extension_dir value is c:\php\ext.

Note: If you get the following error when starting the web server: "Unable to load dynamic library './php_mysql.dll'", this is because php_mysql.dll or libmysql.dll cannot be found by the system.


--------------------------------------------------------------------------------

Runtime Configuration
The behavior of the MySQL functions is affected by settings in the php.ini file.

MySQL configuration options:

Name Default Description Changeable
mysql.allow_persistent "1" Whether or not to allow persistent connections PHP_INI_SYSTEM
mysql.max_persistent "-1" The maximum number of persistent connections per process PHP_INI_SYSTEM
mysql.max_links "-1" The maximum number of connections per process (persistent connections included) PHP_INI_SYSTEM
mysql.trace_mode "0" Trace mode. When set to "1", warnings and SQL-errors will be displayed. Available since PHP 4.3 PHP_INI_ALL
mysql.default_port NULL The default TCP port number to use PHP_INI_ALL
mysql.default_socket NULL The default socket name to use. Available since PHP 4.0.1 PHP_INI_ALL
mysql.default_host NULL The default server host to use (doesn't apply in SQL safe mode) PHP_INI_ALL
mysql.default_user NULL The default user name to use (doesn't apply in SQL safe mode) PHP_INI_ALL
mysql.default_password NULL The default password to use (doesn't apply in SQL safe mode) PHP_INI_ALL
mysql.connect_timeout "60" Connection timeout in seconds PHP_INI_ALL


--------------------------------------------------------------------------------

Resource Types
There are two resource types used in the MySQL extension. The first one is the link_identifier for a database connection, the second is a resource which holds the result of a query.

Note: Most MySQL functions accept link_identifier as the last optional parameter. If it is not provided, the last opened connection is used.


--------------------------------------------------------------------------------

PHP MySQL Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
mysql_affected_rows() Returns the number of affected rows in the previous MySQL operation 3
mysql_change_user() Deprecated. Changes the user of the current MySQL connection 3
mysql_client_encoding() Returns the name of the character set for the current connection 4
mysql_close() Closes a non-persistent MySQL connection 3
mysql_connect() Opens a non-persistent MySQL connection 3
mysql_create_db() Deprecated. Creates a new MySQL database. Use mysql_query() instead 3
mysql_data_seek() Moves the record pointer 3
mysql_db_name() Returns a database name from a call to mysql_list_dbs() 3
mysql_db_query() Deprecated. Sends a MySQL query. Use mysql_select_db() and mysql_query() instead 3
mysql_drop_db() Deprecated. Deletes a MySQL database. Use mysql_query() instead 3
mysql_errno() Returns the error number of the last MySQL operation 3
mysql_error() Returns the error description of the last MySQL operation 3
mysql_escape_string() Deprecated. Escapes a string for use in a mysql_query. Use mysql_real_escape_string() instead 4
mysql_fetch_array() Returns a row from a recordset as an associative array and/or a numeric array 3
mysql_fetch_assoc() Returns a row from a recordset as an associative array 4
mysql_fetch_field() Returns column info from a recordset as an object 3
mysql_fetch_lengths() Returns the length of the contents of each field in a result row 3
mysql_fetch_object() Returns a row from a recordset as an object 3
mysql_fetch_row() Returns a row from a recordset as a numeric array 3
mysql_field_flags() Returns the flags associated with a field in a recordset 3
mysql_field_len() Returns the maximum length of a field in a recordset 3
mysql_field_name() Returns the name of a field in a recordset 3
mysql_field_seek() Moves the result pointer to a specified field 3
mysql_field_table() Returns the name of the table the specified field is in 3
mysql_field_type() Returns the type of a field in a recordset 3
mysql_free_result() Free result memory 3
mysql_get_client_info() Returns MySQL client info 4
mysql_get_host_info() Returns MySQL host info 4
mysql_get_proto_info() Returns MySQL protocol info 4
mysql_get_server_info() Returns MySQL server info 4
mysql_info() Returns information about the last query 4
mysql_insert_id() Returns the AUTO_INCREMENT ID generated from the previous INSERT operation 3
mysql_list_dbs() Lists available databases on a MySQL server 3
mysql_list_fields() Deprecated. Lists MySQL table fields. Use mysql_query() instead 3
mysql_list_processes() Lists MySQL processes 4
mysql_list_tables() Deprecated. Lists tables in a MySQL database. Use mysql_query() instead 3
mysql_num_fields() Returns the number of fields in a recordset 3
mysql_num_rows() Returns the number of rows in a recordset 3
mysql_pconnect() Opens a persistent MySQL connection 3
mysql_ping() Pings a server connection or reconnects if there is no connection 4
mysql_query() Executes a query on a MySQL database 3
mysql_real_escape_string() Escapes a string for use in SQL statements 4
mysql_result() Returns the value of a field in a recordset 3
mysql_select_db() Sets the active MySQL database 3
mysql_stat() Returns the current system status of the MySQL server 4
mysql_tablename() Deprecated. Returns the table name of field. Use mysql_query() instead 3
mysql_thread_id() Returns the current thread ID 4
mysql_unbuffered_query() Executes a query on a MySQL database (without fetching / buffering the result) 4


--------------------------------------------------------------------------------

PHP MySQL Constants
Since PHP 4.3 it has been possible to specify additional flags for the mysql_connect() and mysql_pconnect() functions:

PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
MYSQL_CLIENT_COMPRESS Use compression protocol 4.3
MYSQL_CLIENT_IGNORE_SPACE Allow space after function names 4.3
MYSQL_CLIENT_INTERACTIVE Allow interactive timeout seconds of inactivity before closing the connection 4.3
MYSQL_CLIENT_SSL Use SSL encryption (only available with version 4+ of the MySQL client library) 4.3

The mysql_fetch_array() function uses a constant for the different types of result arrays. The following constants are defined:

Constant Description PHP
MYSQL_ASSOC Columns are returned into the array with the fieldname as the array index
MYSQL_BOTH Columns are returned into the array having both a numerical index and the fieldname as the array index
MYSQL_NUM Columns are returned into the array having a numerical index (index starts at 0)

PHP Misc. Functions

PHP Miscellaneous Introduction
The misc. functions were only placed here because none of the other categories seemed to fit.


--------------------------------------------------------------------------------

Installation
The misc functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

Runtime Configuration
The behavior of the misc functions is affected by settings in the php.ini file.

Misc. configuration options:

Name Default Description Changeable
ignore_user_abort "0" FALSE indicates that scripts will be terminated as soon as they try to output something after a client has aborted their connection PHP_INI_ALL
highlight.string "#DD0000" Color for highlighting a string in PHP syntax PHP_INI_ALL
highlight.comment "#FF8000" Color for highlighting PHP comments PHP_INI_ALL
highlight.keyword "#007700" Color for syntax highlighting PHP keywords (e.g. parenthesis and semicolon) PHP_INI_ALL
highlight.bg "#FFFFFF" Color for background PHP_INI_ALL
highlight.default "#0000BB" Default color for PHP syntax PHP_INI_ALL
highlight.html "#000000" Color for HTML code PHP_INI_ALL
browscap NULL Name and location of browser-capabilities file (e.g. browscap.ini) PHP_INI_SYSTEM


--------------------------------------------------------------------------------

PHP Misc. Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
connection_aborted() Checks whether the client has disconnected 3
connection_status() Returns the current connection status 3
connection_timeout() Deprecated in PHP 4.0.5 3
constant() Returns the value of a constant 4
define() Defines a constant 3
defined() Checks whether a constant exists 3
die() Prints a message and exits the current script 3
eval() Evaluates a string as PHP code 3
exit() Prints a message and exits the current script 3
get_browser() Returns the capabilities of the user's browser 3
highlight_file() Outputs a file with the PHP syntax highlighted 4
highlight_string() Outputs a string with the PHP syntax highlighted 4
ignore_user_abort() Sets whether a remote client can abort the running of a script 3
pack() Packs data into a binary string 3
php_check_syntax() Deprecated in PHP 5.0.5 5
php_strip_whitespace() Returns the source code of a file with PHP comments and whitespace removed 5
show_source() Alias of highlight_file() 4
sleep() Delays code execution for a number of seconds 3
time_nanosleep() Delays code execution for a number of seconds and nanoseconds 5
time_sleep_until() Delays code execution until a specified time 5
uniqid() Generates a unique ID 3
unpack() Unpacks data from a binary string 3
usleep() Delays code execution for a number of microseconds 3


--------------------------------------------------------------------------------

PHP Misc. Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
CONNECTION_ABORTED
CONNECTION_NORMAL
CONNECTION_TIMEOUT
__COMPILER_HALT_OFFSET__ 5

PHP Math Functions

PHP Math Introduction
The math functions can handle values within the range of integer and float types.


--------------------------------------------------------------------------------

Installation
The math functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP Math Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
abs() Returns the absolute value of a number 3
acos() Returns the arccosine of a number 3
acosh() Returns the inverse hyperbolic cosine of a number 4
asin() Returns the arcsine of a number 3
asinh() Returns the inverse hyperbolic sine of a number 4
atan() Returns the arctangent of a number as a numeric value between -PI/2 and PI/2 radians 3
atan2() Returns the angle theta of an (x,y) point as a numeric value between -PI and PI radians 3
atanh() Returns the inverse hyperbolic tangent of a number 4
base_convert() Converts a number from one base to another 3
bindec() Converts a binary number to a decimal number 3
ceil() Returns the value of a number rounded upwards to the nearest integer 3
cos() Returns the cosine of a number 3
cosh() Returns the hyperbolic cosine of a number 4
decbin() Converts a decimal number to a binary number 3
dechex() Converts a decimal number to a hexadecimal number 3
decoct() Converts a decimal number to an octal number 3
deg2rad() Converts a degree to a radian number 3
exp() Returns the value of Ex 3
expm1() Returns the value of Ex - 1 4
floor() Returns the value of a number rounded downwards to the nearest integer 3
fmod() Returns the remainder (modulo) of the division of the arguments 4
getrandmax()
Returns the maximum random number that can be returned by a call to the rand() function 3
hexdec() Converts a hexadecimal number to a decimal number 3
hypot() Returns the length of the hypotenuse of a right-angle triangle 4
is_finite() Returns true if a value is a finite number 4
is_infinite() Returns true if a value is an infinite number 4
is_nan() Returns true if a value is not a number 4
lcg_value() Returns a pseudo random number in the range of (0,1) 4
log() Returns the natural logarithm (base E) of a number 3
log10() Returns the base-10 logarithm of a number 3
log1p() Returns log(1+number) 4
max() Returns the number with the highest value of two specified numbers 3
min() Returns the number with the lowest value of two specified numbers 3
mt_getrandmax() Returns the largest possible value that can be returned by mt_rand() 3
mt_rand() Returns a random integer using Mersenne Twister algorithm 3
mt_srand() Seeds the Mersenne Twister random number generator 3
octdec() Converts an octal number to a decimal number 3
pi() Returns the value of PI 3
pow() Returns the value of x to the power of y 3
rad2deg() Converts a radian number to a degree 3
rand() Returns a random integer 3
round() Rounds a number to the nearest integer 3
sin() Returns the sine of a number 3
sinh() Returns the hyperbolic sine of a number 4
sqrt() Returns the square root of a number 3
srand() Seeds the random number generator 3
tan() Returns the tangent of an angle 3
tanh() Returns the hyperbolic tangent of an angle 4


--------------------------------------------------------------------------------

PHP Math Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
M_E Returns e (approx. 2.718) 4
M_EULER Returns Euler's constant (approx. 0.577) 4
M_LNPI Returns the natural logarithm of PI (approx. 1.144) 4
M_LN2 Returns the natural logarithm of 2 (approx. 0.693) 4
M_LN10 Returns the natural logarithm of 10 (approx. 2.302) 4
M_LOG2E Returns the base-2 logarithm of E (approx. 1.442) 4
M_LOG10E Returns the base-10 logarithm of E (approx. 0.434) 4
M_PI Returns PI (approx. 3.14159) 3
M_PI_2 Returns PI/2 (approx. 1.570) 4
M_PI_4 Returns PI/4 (approx. 0.785) 4
M_1_PI Returns 1/PI (approx. 0.318) 4
M_2_PI Returns 2/PI (approx. 0.636) 4
M_SQRTPI Returns the square root of PI (approx. 1.772) 4
M_2_SQRTPI Returns 2/square root of PI (approx. 1.128) 4
M_SQRT1_2 Returns the square root of 1/2 (approx. 0.707) 4
M_SQRT2 Returns the square root of 2 (approx. 1.414) 4
M_SQRT3 Returns the square root of 3 (approx. 1.732) 4

PHP Mail Functions

PHP Mail Introduction
The mail() function allows you to send emails directly from a script.


--------------------------------------------------------------------------------

Requirements
For the mail functions to be available, PHP requires an installed and working email system. The program to be used is defined by the configuration settings in the php.ini file.


--------------------------------------------------------------------------------

Installation
The mail functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

Runtime Configuration
The behavior of the mail functions is affected by settings in the php.ini file.

Mail configuration options:

Name Default Description Changeable
SMTP "localhost" Windows only: The DNS name or IP address of the SMTP server PHP_INI_ALL
smtp_port "25" Windows only: The SMTP port number. Available since PHP 4.3 PHP_INI_ALL
sendmail_from NULL Windows only: Specifies the "from" address to be used in email sent from PHP PHP_INI_ALL
sendmail_path NULL Unix systems only: Specifies where the sendmail program can be found (usually /usr/sbin/sendmail or /usr/lib/sendmail) PHP_INI_SYSTEM


--------------------------------------------------------------------------------

PHP Mail Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
ezmlm_hash() Calculates the hash value needed by the EZMLM mailing list system 3
mail() Allows you to send emails directly from a script 3


--------------------------------------------------------------------------------

PHP Mail Constants
None.

PHP libxml Functions

PHP libxml Introduction
The libxml functions and constants are used together with SimpleXML, XSLT and DOM functions.


--------------------------------------------------------------------------------

Installation
These functions require the libxml package. Download at xmlsoft.org


--------------------------------------------------------------------------------

PHP libxml Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
libxml_clear_errors() Clear libxml error buffer 5
libxml_get_errors() Retrieve array of errors 5
libxml_get_last_error() Retrieve last error from libxml 5
libxml_set_streams_context() Set the streams context for the next libxml document load or write 5
libxml_use_internal_errors() Disable libxml errors and allow user to fetch error information as needed 5


--------------------------------------------------------------------------------

PHP libxml Constants
Function Description PHP
LIBXML_COMPACT Set small nodes allocation optimization. This may improve the application performance 5
LIBXML_DTDATTR Set default DTD attributes 5
LIBXML_DTDLOAD Load external subset 5
LIBXML_DTDVALID Validate with the DTD 5
LIBXML_NOBLANKS Remove blank nodes 5
LIBXML_NOCDATA Set CDATA as text nodes 5
LIBXML_NOEMPTYTAG Change empty tags (e.g.
to

), only available in the DOMDocument->save() and DOMDocument->saveXML() functions 5
LIBXML_NOENT Substitute entities 5
LIBXML_NOERROR Do not show error reports 5
LIBXML_NONET Stop network access while loading documents 5
LIBXML_NOWARNING Do not show warning reports 5
LIBXML_NOXMLDECL Drop the XML declaration when saving a document 5
LIBXML_NSCLEAN Remove excess namespace declarations 5
LIBXML_XINCLUDE Use XInclude substitution 5
LIBXML_ERR_ERROR Get recoverable errors 5
LIBXML_ERR_FATAL Get fatal errors 5
LIBXML_ERR_NONE Get no errors 5
LIBXML_ERR_WARNING Get simple warnings 5
LIBXML_VERSION Get libxml version (e.g. 20605 or 20617) 5
LIBXML_DOTTED_VERSION Get dotted libxml version (e.g. 2.6.5 or 2.6.17) 5

PHP HTTP Functions

PHP HTTP Introduction
The HTTP functions let you manipulate information sent to the browser by the Web server, before any other output has been sent.


--------------------------------------------------------------------------------

Installation
The directory functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP HTTP Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
header() Sends a raw HTTP header to a client 3
headers_list() Returns a list of response headers sent (or ready to send) 5
headers_sent() Checks if / where the HTTP headers have been sent 3
setcookie() Sends an HTTP cookie to a client 3
setrawcookie() Sends an HTTP cookie without URL encoding the cookie value 5

PHP FTP Functions

PHP FTP Introduction
The FTP functions give client access to file servers through the File Transfer Protocol (FTP).

The FTP functions are used to open, login and close connections, as well as upload, download, rename, delete, and get information on files from file servers. Not all of the FTP functions will work with every server or return the same results. The FTP functions became available with PHP 3.

These functions are meant for detailed access to an FTP server. If you only wish to read from or write to a file on an FTP server, consider using the ftp:// wrapper with the Filesystem functions.


--------------------------------------------------------------------------------

Installation
The windows version of PHP has built-in support for the FTP extension. So, the FTP functions will work automatically.

However, if you are running the Linux version of PHP, you will have to compile PHP with --enable-ftp (PHP 4+) or --with-ftp (PHP 3) to get the FTP functions to work.


--------------------------------------------------------------------------------

PHP FTP Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
ftp_alloc() Allocates space for a file to be uploaded to the FTP server 5
ftp_cdup() Changes the current directory to the parent directory on the FTP server 3
ftp_chdir() Changes the current directory on the FTP server 3
ftp_chmod() Sets permissions on a file via FTP 5
ftp_close() Closes an FTP connection 4
ftp_connect() Opens an FTP connection 3
ftp_delete() Deletes a file on the FTP server 3
ftp_exec() Executes a program/command on the FTP server 4
ftp_fget() Downloads a file from the FTP server and saves it to an open file 3
ftp_fput() Uploads from an open file and saves it to a file on the FTP server 3
ftp_get_option() Returns runtime behaviors of the FTP connection 4
ftp_get() Downloads a file from the FTP server 3
ftp_login() Logs on to an FTP connection 3
ftp_mdtm() Returns the last modified time of a specified file 3
ftp_mkdir() Creates a new directory on the FTP server 3
ftp_nb_continue() Continues retrieving/sending a file (non-blocking) 4
ftp_nb_fget() Downloads a file from the FTP server and saves it to an open file (non-blocking) 4
ftp_nb_fput() Uploads from an open file and saves it to a file on the FTP server (non-blocking) 4
ftp_nb_get() Downloads a file from the FTP server (non-blocking) 4
ftp_nb_put() Uploads a file to the FTP server (non-blocking) 4
ftp_nlist() Lists the files in a specified directory on the FTP server 3
ftp_pasv() Turns passive mode on or off 3
ftp_put() Uploads a file to the FTP server 3
ftp_pwd() Returns the current directory name 3
ftp_quit() Alias of ftp_close() 3
ftp_raw() Sends a raw command to the FTP server 5
ftp_rawlist() Returns a detailed list of files in the specified directory 3
ftp_rename() Renames a file or directory on the FTP server 3
ftp_rmdir() Removes a directory on the FTP server 3
ftp_set_option() Sets runtime options for the FTP connection 4
ftp_site() Sends a SITE command to the server 3
ftp_size() Returns the size of the specified file 3
ftp_ssl_connect() Opens a secure SSL-FTP connection 4
ftp_systype() Returns the system type identifier of the FTP server 3


--------------------------------------------------------------------------------

PHP FTP Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
FTP_ASCII 3
FTP_TEXT 3
FTP_BINARY 3
FTP_IMAGE 3
FTP_TIMEOUT_SEC 3
FTP_AUTOSEEK 4
FTP_AUTORESUME Determine resume position and start position for get and put requests automatically 4
FTP_FAILED Asynchronous transfer has failed 4
FTP_FINISHED Asynchronous transfer has finished 4
FTP_MOREDATA Asynchronous transfer is still active 4

PHP Filter Functions

PHP Filter Introduction
This PHP filters is used to validate and filter data coming from insecure sources, like user input.


--------------------------------------------------------------------------------

Installation
The filter functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP Filter Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
filter_has_var() Checks if a variable of a specified input type exist 5
filter_id() Returns the ID number of a specified filter 5
filter_input() Get input from outside the script and filter it 5
filter_input_array() Get multiple inputs from outside the script and filters them 5
filter_list() Returns an array of all supported filters 5
filter_var_array() Get multiple variables and filter them 5
filter_var() Get a variable and filter it 5


--------------------------------------------------------------------------------

PHP Filters
ID Name Description
FILTER_CALLBACK Call a user-defined function to filter data
FILTER_SANITIZE_STRING Strip tags, optionally strip or encode special characters
FILTER_SANITIZE_STRIPPED Alias of "string" filter
FILTER_SANITIZE_ENCODED URL-encode string, optionally strip or encode special characters
FILTER_SANITIZE_SPECIAL_CHARS HTML-escape '"<>& and characters with ASCII value less than 32
FILTER_SANITIZE_EMAIL Remove all characters, except letters, digits and !#$%&'*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_URL Remove all characters, except letters, digits and $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=
FILTER_SANITIZE_NUMBER_INT Remove all characters, except digits and +-
FILTER_SANITIZE_NUMBER_FLOAT Remove all characters, except digits, +- and optionally .,eE
FILTER_SANITIZE_MAGIC_QUOTES Apply addslashes()
FILTER_UNSAFE_RAW Do nothing, optionally strip or encode special characters
FILTER_VALIDATE_INT Validate value as integer, optionally from the specified range
FILTER_VALIDATE_BOOLEAN Return TRUE for "1", "true", "on" and "yes", FALSE for "0", "false", "off", "no", and "", NULL otherwise
FILTER_VALIDATE_FLOAT Validate value as float
FILTER_VALIDATE_REGEXP Validate value against regexp, a Perl-compatible regular expression
FILTER_VALIDATE_URL Validate value as URL, optionally with required components
FILTER_VALIDATE_EMAIL Validate value as e-mail
FILTER_VALIDATE_IP Validate value as IP address, optionally only IPv4 or IPv6 or not from private or reserved ranges

PHP Filesystem Functions

PHP Filesystem Introduction
The filesystem functions allow you to access and manipulate the filesystem.


--------------------------------------------------------------------------------

Installation
The filesystem functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

Runtime Configuration
The behavior of the filesystem functions is affected by settings in php.ini.

Filesystem configuration options:

Name Default Description Changeable
allow_url_fopen "1" Allows fopen()-type functions to work with URLs (available since PHP 4.0.4)
PHP_INI_SYSTEM
user_agent NULL Defines the user agent for PHP to send (available since PHP 4.3) PHP_INI_ALL
default_socket_timeout "60" Sets the default timeout, in seconds, for socket based streams (available since PHP 4.3) PHP_INI_ALL
from "" Defines the anonymous FTP password (your email address) PHP_INI_ALL
auto_detect_line_endings "0" When set to "1", PHP will examine the data read by fgets() and file() to see if it is using Unix, MS-Dos or Mac line-ending characters (available since PHP 4.3) PHP_INI_ALL


--------------------------------------------------------------------------------

Unix / Windows Compatibility
When specifying a path on Unix platforms, the forward slash (/) is used as directory separator. However, on Windows platforms, both forward slash (/) and backslash (\) can be used.


--------------------------------------------------------------------------------

PHP Filesystem Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
basename() Returns the filename component of a path 3
chgrp() Changes the file group 3
chmod() Changes the file mode 3
chown() Changes the file owner 3
clearstatcache() Clears the file status cache 3
copy() Copies a file 3
delete() See unlink() or unset()
dirname() Returns the directory name component of a path 3
disk_free_space() Returns the free space of a directory 4
disk_total_space() Returns the total size of a directory 4
diskfreespace() Alias of disk_free_space() 3
fclose() Closes an open file 3
feof() Tests for end-of-file on an open file 3
fflush() Flushes buffered output to an open file 4
fgetc() Returns a character from an open file 3
fgetcsv() Parses a line from an open file, checking for CSV fields 3
fgets() Returns a line from an open file 3
fgetss() Returns a line, with HTML and PHP tags removed, from an open file 3
file() Reads a file into an array 3
file_exists() Checks whether or not a file or directory exists 3
file_get_contents() Reads a file into a string 4
file_put_contents Writes a string to a file 5
fileatime() Returns the last access time of a file 3
filectime() Returns the last change time of a file 3
filegroup() Returns the group ID of a file 3
fileinode() Returns the inode number of a file 3
filemtime() Returns the last modification time of a file 3
fileowner() Returns the user ID (owner) of a file 3
fileperms() Returns the permissions of a file 3
filesize() Returns the file size 3
filetype() Returns the file type 3
flock() Locks or releases a file 3
fnmatch() Matches a filename or string against a specified pattern 4
fopen() Opens a file or URL 3
fpassthru() Reads from an open file, until EOF, and writes the result to the output buffer 3
fputcsv() Formats a line as CSV and writes it to an open file 5
fputs() Alias of fwrite() 3
fread() Reads from an open file 3
fscanf() Parses input from an open file according to a specified format 4
fseek() Seeks in an open file 3
fstat() Returns information about an open file 4
ftell() Returns the current position in an open file 3
ftruncate() Truncates an open file to a specified length 4
fwrite() Writes to an open file 3
glob() Returns an array of filenames / directories matching a specified pattern 4
is_dir() Checks whether a file is a directory 3
is_executable() Checks whether a file is executable 3
is_file() Checks whether a file is a regular file 3
is_link() Checks whether a file is a link 3
is_readable() Checks whether a file is readable 3
is_uploaded_file() Checks whether a file was uploaded via HTTP POST 3
is_writable() Checks whether a file is writeable 4
is_writeable() Alias of is_writable() 3
link() Creates a hard link 3
linkinfo() Returns information about a hard link 3
lstat() Returns information about a file or symbolic link 3
mkdir() Creates a directory 3
move_uploaded_file() Moves an uploaded file to a new location 4
parse_ini_file() Parses a configuration file 4
pathinfo() Returns information about a file path 4
pclose() Closes a pipe opened by popen() 3
popen() Opens a pipe 3
readfile() Reads a file and writes it to the output buffer 3
readlink() Returns the target of a symbolic link 3
realpath() Returns the absolute pathname 4
rename() Renames a file or directory 3
rewind() Rewinds a file pointer 3
rmdir() Removes an empty directory 3
set_file_buffer() Sets the buffer size of an open file 3
stat() Returns information about a file 3
symlink() Creates a symbolic link 3
tempnam() Creates a unique temporary file 3
tmpfile() Creates a unique temporary file 3
touch() Sets access and modification time of a file 3
umask() Changes file permissions for files 3
unlink() Deletes a file 3


--------------------------------------------------------------------------------

PHP Filesystem Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
GLOB_BRACE
GLOB_ONLYDIR
GLOB_MARK
GLOB_NOSORT
GLOB_NOCHECK
GLOB_NOESCAPE
PATHINFO_DIRNAME
PATHINFO_BASENAME
PATHINFO_EXTENSION
FILE_USE_INCLUDE_PATH
FILE_APPEND
FILE_IGNORE_NEW_LINES
FILE_SKIP_EMPTY_LINES

PHP Error and Logging Functions

PHP Error and Logging Introduction
The error and logging functions allows error handling and logging.

The error functions allow users to define error handling rules, and modify the way the errors can be logged.

The logging functions allow users to log applications and send log messages to email, system logs or other machines.


--------------------------------------------------------------------------------

Installation
The error and logging functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP Error and Logging Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
debug_backtrace() Generates a backtrace 4
debug_print_backtrace() Prints a backtrace 5
error_get_last() Gets the last error occurred 5
error_log() Sends an error to the server error-log, to a file or to a remote destination 4
error_reporting() Specifies which errors are reported 4
restore_error_handler() Restores the previous error handler 4
restore_exception_handler() Restores the previous exception handler 5
set_error_handler() Sets a user-defined function to handle errors 4
set_exception_handler() Sets a user-defined function to handle exceptions 5
trigger_error() Creates a user-defined error message 4
user_error() Alias of trigger_error() 4


--------------------------------------------------------------------------------

PHP Error and Logging Constants
PHP: indicates the earliest version of PHP that supports the constant.

Value Constant Description PHP
1 E_ERROR Fatal run-time errors. Errors that cannot be recovered from. Execution of the script is halted
2 E_WARNING Non-fatal run-time errors. Execution of the script is not halted
4 E_PARSE Compile-time parse errors. Parse errors should only be generated by the parser
8 E_NOTICE Run-time notices. The script found something that might be an error, but could also happen when running a script normally
16 E_CORE_ERROR Fatal errors at PHP startup. This is like an E_ERROR in the PHP core 4
32 E_CORE_WARNING Non-fatal errors at PHP startup. This is like an E_WARNING in the PHP core 4
64 E_COMPILE_ERROR Fatal compile-time errors. This is like an E_ERROR generated by the Zend Scripting Engine 4
128 E_COMPILE_WARNING Non-fatal compile-time errors. This is like an E_WARNING generated by the Zend Scripting Engine 4
256 E_USER_ERROR Fatal user-generated error. This is like an E_ERROR set by the programmer using the PHP function trigger_error() 4
512 E_USER_WARNING Non-fatal user-generated warning. This is like an E_WARNING set by the programmer using the PHP function trigger_error() 4
1024 E_USER_NOTICE User-generated notice. This is like an E_NOTICE set by the programmer using the PHP function trigger_error() 4
2048 E_STRICT Run-time notices. PHP suggest changes to your code to help interoperability and compatibility of the code 5
4096 E_RECOVERABLE_ERROR Catchable fatal error. This is like an E_ERROR but can be caught by a user defined handle (see also set_error_handler()) 5
8191 E_ALL All errors and warnings, except of level E_STRICT 5

PHP Directory Functions

PHP Directory Introduction
The directory functions allow you to retrieve information about directories and their contents.


--------------------------------------------------------------------------------

Installation
The directory functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP Directory Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
chdir() Changes the current directory 3
chroot() Changes the root directory of the current process 4
dir() Opens a directory handle and returns an object 3
closedir() Closes a directory handle 3
getcwd() Returns the current directory 4
opendir() Opens a directory handle 3
readdir() Returns an entry from a directory handle 3
rewinddir() Resets a directory handle 3
scandir() Lists files and directories inside a specified path 5


--------------------------------------------------------------------------------

PHP Directory Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
DIRECTORY_SEPARATOR 3
PATH_SEPARATOR 4

PHP Date / Time Functions

PHP Date / Time Introduction
The date/time functions allow you to extract and format the date and time on the server.

Note: These functions depend on the locale settings of the server!


--------------------------------------------------------------------------------

Installation
The date/time functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

Runtime Configuration
The behavior of the date/time functions is affected by settings in php.ini.

Date/Time configuration options:

Name Default Description Changeable
date.default_latitude "31.7667" Specifies the default latitude (available since PHP 5). This option is used by date_sunrise() and date_sunset() PHP_INI_ALL
date.default_longitude "35.2333" Specifies the default longitude (available since PHP 5). This option is used by date_sunrise() and date_sunset() PHP_INI_ALL
date.sunrise_zenith "90.83" Specifies the default sunrise zenith (available since PHP 5). This option is used by date_sunrise() and date_sunset() PHP_INI_ALL
date.sunset_zenith "90.83" Specifies the default sunset zenith (available since PHP 5). This option is used by date_sunrise() and date_sunset() PHP_INI_ALL
date.timezone "" Specifies the default timezone (available since PHP 5.1) PHP_INI_ALL


--------------------------------------------------------------------------------

PHP Date / Time Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
checkdate() Validates a Gregorian date 3
date_default_timezone_get() Returns the default time zone 5
date_default_timezone_set() Sets the default time zone 5
date_sunrise() Returns the time of sunrise for a given day / location 5
date_sunset() Returns the time of sunset for a given day / location 5
date() Formats a local time/date 3
getdate() Returns an array that contains date and time information for a Unix timestamp 3
gettimeofday() Returns an array that contains current time information 3
gmdate() Formats a GMT/UTC date/time 3
gmmktime() Returns the Unix timestamp for a GMT date 3
gmstrftime() Formats a GMT/UTC time/date according to locale settings 3
idate() Formats a local time/date as integer 5
localtime() Returns an array that contains the time components of a Unix timestamp 4
microtime() Returns the microseconds for the current time 3
mktime() Returns the Unix timestamp for a date 3
strftime() Formats a local time/date according to locale settings 3
strptime() Parses a time/date generated with strftime() 5
strtotime() Parses an English textual date or time into a Unix timestamp 3
time() Returns the current time as a Unix timestamp 3


--------------------------------------------------------------------------------

PHP Date / Time Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
DATE_ATOM Atom (example: 2005-08-15T16:13:03+0000)
DATE_COOKIE HTTP Cookies (example: Sun, 14 Aug 2005 16:13:03 UTC)
DATE_ISO8601 ISO-8601 (example: 2005-08-14T16:13:03+0000)
DATE_RFC822 RFC 822 (example: Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC850 RFC 850 (example: Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1036 RFC 1036 (example: Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1123 RFC 1123 (example: Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC2822 RFC 2822 (Sun, 14 Aug 2005 16:13:03 +0000)
DATE_RSS RSS (Sun, 14 Aug 2005 16:13:03 UTC)
DATE_W3C World Wide Web Consortium (example: 2005-08-14T16:13:03+0000)

PHP Calendar Functions

PHP Calendar Introduction
The calendar functions are useful when working with different calendar formats. The standard it is based on is the Julian day count (Julian day count is a count of days starting from January 1, 4713 B.C.). Note that the Julian day count is not the same as the Julian calendar!

Note: To convert between calendar formats, you must first convert to Julian day count, then to the calendar format.


--------------------------------------------------------------------------------

Installation
The windows version of PHP has built-in support for the calendar extension. So, the calendar functions will work automatically.

However, if you are running the Linux version of PHP, you will have to compile PHP with --enable-calendar to get the calendar functions to work.


--------------------------------------------------------------------------------

PHP Calendar Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
cal_days_in_month() Returns the number of days in a month for a specified year and calendar 4
cal_from_jd() Converts a Julian day count into a date of a specified calendar 4
cal_info() Returns information about a given calendar 4
cal_to_jd() Converts a date to Julian day count 4
easter_date() Returns the Unix timestamp for midnight on Easter of a specified year 3
easter_days() Returns the number of days after March 21, on which Easter falls for a specified year 3
FrenchToJD() Converts a French Republican date to a Julian day count 3
GregorianToJD() Converts a Gregorian date to a Julian day count 3
JDDayOfWeek() Returns the day of a week 3
JDMonthName() Returns a month name 3
JDToFrench() Converts a Julian day count to a French Republican date 3
JDToGregorian() Converts a Julian day count to a Gregorian date 3
jdtojewish() Converts a Julian day count to a Jewish date 3
JDToJulian() Converts a Julian day count to a Julian date 3
jdtounix() Converts a Julian day count to a Unix timestamp 4
JewishToJD() Converts a Jewish date to a Julian day count 3
JulianToJD() Converts a Julian date to a Julian day count 3
unixtojd() Converts a Unix timestamp to a Julian day count 4


--------------------------------------------------------------------------------

PHP Calendar Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
CAL_GREGORIAN Gregorian calendar 3
CAL_JULIAN Julian calendar 3
CAL_JEWISH Jewish calendar 3
CAL_FRENCH French Republican calendar 3
CAL_NUM_CALS 3
CAL_DOW_DAYNO 3
CAL_DOW_SHORT 3
CAL_DOW_LONG 3
CAL_MONTH_GREGORIAN_SHORT 3
CAL_MONTH_GREGORIAN_LONG 3
CAL_MONTH_JULIAN_SHORT 3
CAL_MONTH_JULIAN_LONG 3
CAL_MONTH_JEWISH 3
CAL_MONTH_FRENCH 3
CAL_EASTER_DEFAULT 4
CAL_EASTER_DEFAULT 4
CAL_EASTER_ROMAN 4
CAL_EASTER_ALWAYS_GREGORIAN 4
CAL_EASTER_ALWAYS_JULIAN 4
CAL_JEWISH_ADD_ALAFIM_GERESH 5
CAL_JEWISH_ADD_ALAFIM 5
CAL_JEWISH_ADD_GERESHAYIM 5

PHP Array Functions

PHP Array Introduction
The array functions allow you to manipulate arrays.

PHP supports both simple and multi-dimensional arrays. There are also specific functions for populating arrays from database queries.


--------------------------------------------------------------------------------

Installation
The array functions are part of the PHP core. There is no installation needed to use these functions.


--------------------------------------------------------------------------------

PHP Array Functions
PHP: indicates the earliest version of PHP that supports the function.

Function Description PHP
array() Creates an array 3
array_change_key_case() Returns an array with all keys in lowercase or uppercase 4
array_chunk() Splits an array into chunks of arrays 4
array_combine() Creates an array by using one array for keys and another for its values 5
array_count_values() Returns an array with the number of occurrences for each value 4
array_diff() Compares array values, and returns the differences 4
array_diff_assoc() Compares array keys and values, and returns the differences 4
array_diff_key() Compares array keys, and returns the differences 5
array_diff_uassoc() Compares array keys and values, with an additional user-made function check, and returns the differences 5
array_diff_ukey() Compares array keys, with an additional user-made function check, and returns the differences 5
array_fill() Fills an array with values 4
array_filter() Filters elements of an array using a user-made function 4
array_flip() Exchanges all keys with their associated values in an array 4
array_intersect() Compares array values, and returns the matches 4
array_intersect_assoc() Compares array keys and values, and returns the matches 4
array_intersect_key() Compares array keys, and returns the matches 5
array_intersect_uassoc() Compares array keys and values, with an additional user-made function check, and returns the matches 5
array_intersect_ukey() Compares array keys, with an additional user-made function check, and returns the matches 5
array_key_exists() Checks if the specified key exists in the array 4
array_keys() Returns all the keys of an array 4
array_map() Sends each value of an array to a user-made function, which returns new values 4
array_merge() Merges one or more arrays into one array 4
array_merge_recursive() Merges one or more arrays into one array 4
array_multisort() Sorts multiple or multi-dimensional arrays 4
array_pad() Inserts a specified number of items, with a specified value, to an array 4
array_pop() Deletes the last element of an array 4
array_product() Calculates the product of the values in an array 5
array_push() Inserts one or more elements to the end of an array 4
array_rand() Returns one or more random keys from an array 4
array_reduce() Returns an array as a string, using a user-defined function 4
array_reverse() Returns an array in the reverse order 4
array_search() Searches an array for a given value and returns the key 4
array_shift() Removes the first element from an array, and returns the value of the removed element 4
array_slice() Returns selected parts of an array 4
array_splice() Removes and replaces specified elements of an array 4
array_sum() Returns the sum of the values in an array 4
array_udiff() Compares array values in a user-made function and returns an array 5
array_udiff_assoc() Compares array keys, and compares array values in a user-made function, and returns an array 5
array_udiff_uassoc() Compares array keys and array values in user-made functions, and returns an array 5
array_uintersect() Compares array values in a user-made function and returns an array 5
array_uintersect_assoc() Compares array keys, and compares array values in a user-made function, and returns an array 5
array_uintersect_uassoc() Compares array keys and array values in user-made functions, and returns an array 5
array_unique() Removes duplicate values from an array 4
array_unshift() Adds one or more elements to the beginning of an array 4
array_values() Returns all the values of an array 4
array_walk() Applies a user function to every member of an array 3
array_walk_recursive() Applies a user function recursively to every member of an array 5
arsort() Sorts an array in reverse order and maintain index association 3
asort() Sorts an array and maintain index association 3
compact() Create array containing variables and their values 4
count() Counts elements in an array, or properties in an object 3
current() Returns the current element in an array 3
each() Returns the current key and value pair from an array 3
end() Sets the internal pointer of an array to its last element 3
extract() Imports variables into the current symbol table from an array 3
in_array() Checks if a specified value exists in an array 4
key() Fetches a key from an array 3
krsort() Sorts an array by key in reverse order 3
ksort() Sorts an array by key 3
list() Assigns variables as if they were an array 3
natcasesort() Sorts an array using a case insensitive "natural order" algorithm 4
natsort() Sorts an array using a "natural order" algorithm 4
next() Advance the internal array pointer of an array 3
pos() Alias of current() 3
prev() Rewinds the internal array pointer 3
range() Creates an array containing a range of elements 3
reset() Sets the internal pointer of an array to its first element 3
rsort() Sorts an array in reverse order 3
shuffle() Shuffles an array 3
sizeof() Alias of count() 3
sort() Sorts an array 3
uasort() Sorts an array with a user-defined function and maintain index association 3
uksort() Sorts an array by keys using a user-defined function 3
usort() Sorts an array by values using a user-defined function 3


--------------------------------------------------------------------------------

PHP Array Constants
PHP: indicates the earliest version of PHP that supports the constant.

Constant Description PHP
CASE_LOWER Used with array_change_key_case() to convert array keys to lower case
CASE_UPPER Used with array_change_key_case() to convert array keys to upper case
SORT_ASC Used with array_multisort() to sort in ascending order
SORT_DESC Used with array_multisort() to sort in descending order
SORT_REGULAR Used to compare items normally
SORT_NUMERIC Used to compare items numerically
SORT_STRING Used to compare items as strings
SORT_LOCALE_STRING Used to compare items as strings, based on the current locale 4
COUNT_NORMAL
COUNT_RECURSIVE
EXTR_OVERWRITE
EXTR_SKIP
EXTR_PREFIX_SAME
EXTR_PREFIX_ALL
EXTR_PREFIX_INVALID
EXTR_PREFIX_IF_EXISTS
EXTR_IF_EXISTS
EXTR_REFS

PHP and AJAX Poll

AJAX Suggest
In the AJAX example below we will demonstrate a poll where the web page can get the result without reloading.


--------------------------------------------------------------------------------
Do you like PHP and AJAX so far?
Yes:
No: This example consists of four pages:
a simple HTML form
a JavaScript
a PHP page
a text file to store the results

--------------------------------------------------------------------------------

The HTML Form
This is the HTML page. It contains a simple HTML form and a link to a JavaScript:






Do you like PHP and AJAX so far?


Yes:
value="0" onclick="getVote(this.value)">

No:
value="1" onclick="getVote(this.value)">




Example Explained - The HTML Form
As you can see, the HTML page above contains a simple HTML form inside a "
" with two radio buttons.

The form works like this:

An event is triggered when the user selects the "yes" or "no" option
When the event is triggered, a function called getVote() is executed.
Around the form is a
called "poll". When the data is returned from the getVote() function, the return data will replace the form.

--------------------------------------------------------------------------------

The Text File
The text file (poll_result.txt) is where we store the data from the poll.

It is stored like this:

0||0

The first number represents the "Yes" votes, the second number represents the "No" votes.

Note: Remember to allow your web server to edit the text file. Do NOT give everyone access, just the web server (PHP).


--------------------------------------------------------------------------------

The JavaScript
The JavaScript code is stored in "poll.js" and linked to in the HTML document:

var xmlHttp

function getVote(int)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="poll_vote.php"
url=url+"?vote="+int
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("poll").
innerHTML=xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}

Example Explained
The stateChanged() and GetXmlHttpObject functions are the same as in the PHP AJAX Suggest chapter.

The getVote() Function

This function executes when "yes" or "no" is selected in the HTML form.

Defines the url (filename) to send to the server
Adds a parameter (vote) to the url with the content of the input field
Adds a random number to prevent the server from using a cached file
Calls on the GetXmlHttpObject function to create an XMLHTTP object, and tells the object to execute a function called stateChanged when a change is triggered
Opens the XMLHTTP object with the given url.
Sends an HTTP request to the server

--------------------------------------------------------------------------------

The PHP Page
The server page called by the JavaScript code is a simple PHP file called "poll_vote.php".

$vote = $_REQUEST['vote'];//get content of textfile
$filename = "poll_result.txt";
$content = file($filename);//put content in array
$array = explode("||", $content[0]);
$yes = $array[0];
$no = $array[1];if ($vote == 0)
{
$yes = $yes + 1;
}
if ($vote == 1)
{
$no = $no + 1;
}//insert votes to txt file
$insertvote = $yes."||".$no;
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
?>

Result:











Yes:
width=''
height='20'>
%
No:
width=''
height='20'>
%


The selected value is sent from the JavaScript and the following happens:

Get the content of the "poll_result.txt" file
Put the content of the file in variables and add one to the selected variable
Write the result to the "poll_result.txt" file
Output a graphical representation of the poll result

PHP and AJAX RSS Reader

An RSS Reader is used to read RSS Feeds

RSS allows fast browsing for news and updates


--------------------------------------------------------------------------------

AJAX RSS Reader
In the AJAX example below we will demonstrate an RSS reader where the content from the RSS is loaded into the webpage without refreshing.


--------------------------------------------------------------------------------

Select an RSS News Feed in the Box Below

Select an RSS-Feed: Google News MSNBC News

RSS Feed will be listed here.

This example consists of three pages:

a simple HTML form
a JavaScript
a PHP page.

--------------------------------------------------------------------------------

The HTML Form
This is the HTML page. It contains a simple HTML form and a link to a JavaScript:






Select an RSS-Feed:


RSS Feed will be listed here.





Example Explained - The HTML Form
As you can see, the HTML page above contains a simple HTML form with a drop-down box.

The form works like this:

An event is triggered when the user selects an option in the drop down box
When the event is triggered, a function called showRSS() is executed.
Below the form is a
called "rssOutput". This is used as a placeholder for the return data of the showRSS() function.

--------------------------------------------------------------------------------

The JavaScript
The JavaScript code is stored in "getrss.js" and linked to the HTML document:

var xmlHttpfunction showRSS(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getrss.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("rssOutput")
.innerHTML=xmlHttp.responseText
}
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

Example Explained
The stateChanged() and GetXmlHttpObject functions are the same as in the PHP AJAX Suggest chapter.

The showRSS() Function

Every time an option is selected in the input field this function executes the following:

Defines the url (filename) to send to the server
Adds a parameter (q) to the url with the selected option from the drop down box
Adds a random number to prevent the server from using a cached file
Calls on the GetXmlHttpObject function to create an XMLHTTP object, and tells the object to execute a function called stateChanged when a change is triggered
Opens the XMLHTTP object with the given url.
Sends an HTTP request to the server

--------------------------------------------------------------------------------

The PHP Page
The server page called by the JavaScript code is a PHP file called "getrss.php":

//get the q parameter from URL
$q=$_GET["q"];//find out which feed was selected
if($q=="Google")
{
$xml=("http://news.google.com/news?ned=us&topic=h&output=rss");
}
elseif($q=="MSNBC")
{
$xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml");
}$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);//get elements from ""
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$channel_link = $channel->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;//output elements from ""
echo("

" . $channel_title . "");
echo("
");
echo($channel_desc . "

");//get and output "" elements
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++)
{
$item_title=$x->item($i)->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$item_desc=$x->item($i)->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue; echo ("

" . $item_title . "");
echo ("
");
echo ($item_desc . "

");
}
?>

Example Explained - The PHP Page
When an option is sent from the JavaScript the following happens:

PHP finds out which RSS feed was selected
An XML DOM object is created for the selected RSS feed
The elements from the RSS channel are found and outputted
The three first elements from the RSS items are looped through and outputted

PHP and AJAX Live Search

AJAX can be used for a more user friendly and interactive search.


--------------------------------------------------------------------------------

AJAX Live Search
In the AJAX example below we will demonstrate a live search, where the server gets search results while the user types.

Live search has many benefits compared to traditional searching:

Matching results are shown as you type
Results narrow as you continue typing
If results become too narrow, remove characters to see a broader result

--------------------------------------------------------------------------------

Search for a W3Schools page in the Box Below



This example consists of four pages:

a simple HTML form
a JavaScript
a PHP page
an XML document
In this example the results are found in an XML document (links.xml). To make this example small and simple, only eight results are available.


--------------------------------------------------------------------------------

The HTML Form
This is the HTML page. It contains a simple HTML form, style for the form and a link to a JavaScript:







onkeyup="showResult(this.value)">




Example Explained - The HTML Form
As you can see, the HTML page above contains a simple HTML form with an input field called "txt1".

The form works like this:

An event is triggered when the user presses, and releases a key in the input field
When the event is triggered, a function called showResult() is executed.
Below the form is a
called "livesearch". This is used as a placeholder for the return data of the showResult() function.

--------------------------------------------------------------------------------

The JavaScript
The JavaScript code is stored in "livesearch.js" and linked to the HTML document:

var xmlHttpfunction showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").
innerHTML="";
document.getElementById("livesearch").
style.border="0px";
return
}xmlHttp=GetXmlHttpObject()if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
} var url="livesearch.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("livesearch").
innerHTML=xmlHttp.responseText;
document.getElementById("livesearch").
style.border="1px solid #A5ACB2";
}
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

Example Explained
The GetXmlHttpObject function is the same as in the PHP AJAX Suggest chapter.

The showResult() Function

This function executes every time a character is entered in the input field.

If there is no input in the text field (str.length == 0) the function sets the return field to empty and removes any border around it.

However, if there is any input in the text field the function executes the following:

Defines the url (filename) to send to the server
Adds a parameter (q) to the url with the content of the input field
Adds a random number to prevent the server from using a cached file
Calls on the GetXmlHttpObject function to create an XMLHTTP object, and tells the object to execute a function called stateChanged when a change is triggered
Opens the XMLHTTP object with the given url.
Sends an HTTP request to the server
The stateChanged() Function

This function executes every time the state of the XMLHTTP object changes.

When the state changes to 4 (or to "complete"), the content of the txtHint placeholder is filled with the response text, and a border is set around the return field.


--------------------------------------------------------------------------------

The PHP Page
The server page called by the JavaScript code is a PHP file called "livesearch.php".

The code in the "livesearch.php" checks the XML document "links.xml". This document contains titles and URL's of some pages on W3Schools.com.

The code searches the XML file for titles matching the search string and returns the result as HTML:

$xmlDoc = new DOMDocument();
$xmlDoc->load("links.xml");$x=$xmlDoc->getElementsByTagName('link');//get the q parameter from URL
$q=$_GET["q"];//lookup all links from the xml file if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<($x->length); $i++)
{
$y=$x->item($i)->getElementsByTagName('title');
$z=$x->item($i)->getElementsByTagName('url');
if ($y->item(0)->nodeType==1)
{
//find a link matching the search text
if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
{
if ($hint=="")
{
$hint="" .
$y->item(0)->childNodes->item(0)->nodeValue . "
";
}
else
{
$hint=$hint . "
" .
$y->item(0)->childNodes->item(0)->nodeValue . "
";
}
}
}
}
}// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}//output the response
echo $response;
?>

If there is any text sent from the JavaScript (strlen($q) > 0) the following happens:

PHP creates an XML DOM object of the "links.xml" file
All "title" elements (nodetypes = 1) are looped through to find a name matching the one sent from the JavaScript
The link containing the correct title is found and set as the "$response" variable. If more than one match is found, all matches are added to the variable
If no matches are found the $response variable is set to "no suggestion"
The $result variable is output and sent to the "livesearch" placeholder

PHP and AJAX responseXML Example

AJAX can be used to return database information as XML.


--------------------------------------------------------------------------------

AJAX Database as XML Example
In the AJAX example below we will demonstrate how a web page can fetch information from a MySQL database, convert it to an XML document, and use it to display information in several different places.

This example my seem a lot like the "PHP AJAX Database" example in the last chapter, however there is a big difference: in this example we get the data from the PHP page as XML using the responseXML function.

Receiving the response as an XML document allows us to update this page several places, instead of just receiving a PHP output and displaying it.

In this example we will update several elements with the information we receive from the database.


--------------------------------------------------------------------------------

Select a Name in the Box Below
Select a User: Peter Griffin Lois Griffin Joseph Swanson Glenn Quagmire


This example consists of four elements:

a MySQL database
a simple HTML form
a JavaScript
a PHP page

--------------------------------------------------------------------------------

The Database
The database we will be using in this example looks like this:

id FirstName LastName Age Hometown Job
1 Peter Griffin 41 Quahog Brewery
2 Lois Griffin 40 Newport Piano Teacher
3 Joseph Swanson 39 Quahog Police Officer
4 Glenn Quagmire 41 Quahog Pilot



--------------------------------------------------------------------------------

The HTML Form
The example above contains a simple HTML form and a link to a JavaScript:






Select a User:


 











Example Explained - The HTML Form
The HTML form is a drop down box called "users" with names and the "id" from the database as option values.
Below the form there are several different elements which are used to as placeholders for the different values we will retrive.
When the user selects data, a function called "showUser()" is executed. The execution of the function is triggered by the "onchange" event.
In other words: Each time the user changes the value in the drop down box, the function showUser() is called and outputs the result in the specified elements.


--------------------------------------------------------------------------------

The JavaScript
This is the JavaScript code stored in the file "responsexml.js":

var xmlHttpfunction showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="responsexml.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
xmlDoc=xmlHttp.responseXML;
document.getElementById("firstname").innerHTML=
xmlDoc.getElementsByTagName("firstname")[0].childNodes[0].nodeValue;
document.getElementById("lastname").innerHTML=
xmlDoc.getElementsByTagName("lastname")[0].childNodes[0].nodeValue;
document.getElementById("job").innerHTML=
xmlDoc.getElementsByTagName("job")[0].childNodes[0].nodeValue;
document.getElementById("age_text").innerHTML="Age: ";
document.getElementById("age").innerHTML=
xmlDoc.getElementsByTagName("age")[0].childNodes[0].nodeValue;
document.getElementById("hometown_text").innerHTML="
From: ";
document.getElementById("hometown").innerHTML=
xmlDoc.getElementsByTagName("hometown")[0].childNodes[0].nodeValue;
}
} function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}

Example Explained
The showUser() and GetXmlHttpObject functions are the same as in the PHP AJAX Database chapter, you can go to there for an explanation of those.

The stateChanged() Function

If an item in the drop down box is selected the function executes the following:

Defines the "xmlDoc" variable as an xml document using the responseXML function
Retrieves data from the xml documents and places them in the correct elements

--------------------------------------------------------------------------------

The PHP Page
The server page called by the JavaScript, is a simple PHP file called "responsexml.php".

The page is written in PHP and uses a MySQL databse.

The code runs a SQL query against a database and returns the result as an XML document:

header('Content-Type: text/xml');
header("Cache-Control: no-cache, must-revalidate");
//A date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");$q=$_GET["q"];$con = mysql_connect('localhost', 'peter', 'abc123');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}mysql_select_db("ajax_demo", $con);$sql="SELECT * FROM user WHERE id = ".$q."";$result = mysql_query($sql);echo '
';
while($row = mysql_fetch_array($result))
{
echo "" . $row['FirstName'] . "";
echo "" . $row['LastName'] . "";
echo "" . $row['Age'] . "";
echo "" . $row['Hometown'] . "";
echo "" . $row['Job'] . "";
}
echo "
";mysql_close($con);
?>


Example Explained
When the query is sent from the JavaScript to the PHP page the following happens:

The content-type of the PHP document is set to be "text/xml"
The PHP document is set to "no-cache" to prevent caching
The $q variable is set to be the data sent from the html page
PHP opens a connection to a MySQL server
The "user" with the specified id is found
The data is outputted as an xml document

PHP and AJAX XML Example

AJAX can be used for interactive communication with an XML file.


--------------------------------------------------------------------------------

AJAX XML Example
In the AJAX example below we will demonstrate how a web page can fetch information from an XML file using AJAX technology.


--------------------------------------------------------------------------------

Select a CD in the Box Below
Select a CD: Bob Dylan Bee Gees Cat Stevens
CD info will be listed here.
This example consists of four pages:

a simple HTML form
an XML file
a JavaScript
a PHP page

--------------------------------------------------------------------------------

The HTML Form
The example above contains a simple HTML form and a link to a JavaScript:





Select a CD:


CD info will be listed here.




Example Explained
As you can see it is just a simple HTML form with a simple drop down box called "cds".

The paragraph below the form contains a div called "txtHint". The div is used as a placeholder for info retrieved from the web server.

When the user selects data, a function called "showCD" is executed. The execution of the function is triggered by the "onchange" event.

In other words: Each time the user changes the value in the drop down box, the function showCD is called.


--------------------------------------------------------------------------------

The XML File
The XML file is "cd_catalog.xml". This document contains a CD collection.


--------------------------------------------------------------------------------

The JavaScript
This is the JavaScript code stored in the file "selectcd.js":

var xmlHttp

function showCD(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getcd.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}function GetXmlHttpObject()
{
var xmlHttp=null;try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

Example Explained
The stateChanged() and GetXmlHttpObject functions are the same as in the last chapter, you can go to the previous page for an explanation of those

The showCD() Function

If an item in the drop down box is selected the function executes the following:

Calls on the GetXmlHttpObject function to create an XMLHTTP object
Defines the url (filename) to send to the server
Adds a parameter (q) to the url with the content of the input field
Adds a random number to prevent the server from using a cached file
Call stateChanged when a change is triggered
Opens the XMLHTTP object with the given url.
Sends an HTTP request to the server

--------------------------------------------------------------------------------

The PHP Page
The server paged called by the JavaScript, is a simple PHP file called "getcd.php".

The page is written in PHP using the XML DOM to load the XML document "cd_catalog.xml".

The code runs a query against the XML file and returns the result as HTML:

$q=$_GET["q"];$xmlDoc = new DOMDocument();
$xmlDoc->load("cd_catalog.xml");$x=$xmlDoc->getElementsByTagName('ARTIST');for ($i=0; $i<=$x->length-1; $i++)
{
//Process only element nodes
if ($x->item($i)->nodeType==1)
{
if ($x->item($i)->childNodes->item(0)->nodeValue == $q)
{
$y=($x->item($i)->parentNode);
}
}
}$cd=($y->childNodes);for ($i=0;$i<$cd->length;$i++)
{
//Process only element nodes
if ($cd->item($i)->nodeType==1)
{
echo($cd->item($i)->nodeName);
echo(": ");
echo($cd->item($i)->childNodes->item(0)->nodeValue);
echo("
");
}
}
?>

Example Explained
When the query is sent from the JavaScript to the PHP page the following happens:

PHP creates an XML DOM object of the "cd_catalog.xml" file
All "artist" elements (nodetypes = 1) are looped through to find a name matching the one sent from the JavaScript.
The CD containing the correct artist is found
The album information is output and sent to the "txtHint" placeholder