Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Calendar Functions

Calendar Functions

Introduction

The calendar extension presents a series of functions to simplify converting between different calendar formats. The intermediary or standard it is based on is the Julian Day Count. The Julian Day Count is a count of days starting from January 1st, 4713 B.C. To convert between calendar systems, you must first convert to Julian Day Count, then to the calendar system of your choice. Julian Day Count is very different from the Julian Calendar! For more information on Julian Day Count, visit » http://www.hermetic.ch/cal_stud/jdn.htm. For more information on calendar systems visit » http://www.fourmilab.ch/documents/calendar/. Excerpts from this page are included in these instructions, and are in quotes.

Installation

To get these functions to work, you have to compile PHP with --enable-calendar.

The windows version of PHP has built in support for this extension. You do not need to load any additional extension in order to use these functions.

Runtime Configuration

This extension has no configuration directives defined in php.ini.

Resource Types

This extension has no resource types defined.

Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

CAL_GREGORIAN (integer)
CAL_JULIAN (integer)
CAL_JEWISH (integer)
CAL_FRENCH (integer)
CAL_NUM_CALS (integer)
CAL_DOW_DAYNO (integer)
CAL_DOW_SHORT (integer)
CAL_DOW_LONG (integer)
CAL_MONTH_GREGORIAN_SHORT (integer)
CAL_MONTH_GREGORIAN_LONG (integer)
CAL_MONTH_JULIAN_SHORT (integer)
CAL_MONTH_JULIAN_LONG (integer)
CAL_MONTH_JEWISH (integer)
CAL_MONTH_FRENCH (integer)

The following constants are available since PHP 4.3.0 :

CAL_EASTER_DEFAULT (integer)
CAL_EASTER_ROMAN (integer)
CAL_EASTER_ALWAYS_GREGORIAN (integer)
CAL_EASTER_ALWAYS_JULIAN (integer)

The following constants are available since PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (integer)
CAL_JEWISH_ADD_ALAFIM (integer)
CAL_JEWISH_ADD_GERESHAYIM (integer)

Table of Contents

cal_days_in_month — Return the number of days in a month for a given year and calendar
cal_from_jd — Converts from Julian Day Count to a supported calendar
cal_info — Returns information about a particular calendar
cal_to_jd — Converts from a supported calendar to Julian Day Count
easter_date — Get Unix timestamp for midnight on Easter of a given year
easter_days — Get number of days after March 21 on which Easter falls for a given year
FrenchToJD — Converts a date from the French Republican Calendar to a Julian Day Count
GregorianToJD — Converts a Gregorian date to Julian Day Count
JDDayOfWeek — Returns the day of the week
JDMonthName — Returns a month name
JDToFrench — Converts a Julian Day Count to the French Republican Calendar
JDToGregorian — Converts Julian Day Count to Gregorian date
jdtojewish — Converts a Julian day count to a Jewish calendar date
JDToJulian — Converts a Julian Day Count to a Julian Calendar Date
jdtounix — Convert Julian Day to Unix timestamp
JewishToJD — Converts a date in the Jewish Calendar to Julian Day Count
JulianToJD — Converts a Julian Calendar date to Julian Day Count
unixtojd — Convert Unix timestamp to Julian Day

Code Examples / Notes » ref.calendar

carlj

Why not do something like this, to find the number of days in a month?
$monthNum = date("n"); // or any value from 1-12
$year         = date("Y"); // or any value >= 1
$numDays   = date("t",mktime(0,0,0,$monthNum,1,$year))
This will tell you if there is 28-31 days in a month


simon

Well this is the second part, well more the second calendar of Maya the Tikal there is two of them one for long count, one for general date seeding, this is using an implementation of floating point time (roun).
<?php
$maya = MayanTikalCalendar(time(),0);
print_r($maya);
$poffset = '2012-12-21 8:24 PM',
$pweight = '-1872000.22222222223',
$defiency='nonedeficient',
$timeset= array("hours" => 24,
"minutes" => 60,
"seconds" => 60))
{
// Code Segment 1 – Calculate Floating Point
$tme = $unix_time;
if ($gmt>0){ $gmt=-$gmt; } else { $gmt=abs($gmt); }
$ptime = strtotime($poffset)+(60*60*gmt);
$maya_xa = ($tme)/(24*60*60);
$maya_ya = $ptime/(24*60*60);
$maya = (($maya_xa -$maya_ya) - $pweight)+(microtime/999999);
// Code Segment 2 – Set month day arrays
$nonedeficient = array(
"seq1" => array(20,20,20,20,20,20,20,20,20,
20,20,20,20,20,20,20,20,20,5));
$monthnames = array("seq1" => array(
'Pop', 'Uo', 'Zip', 'Zot\'z', 'Tzec', 'Xul',
'Yaxkin', 'Mol', 'Ch\'en', 'Yax', 'Zac', 'Ceh',
'Mac', 'Kankin', 'Muan', 'Pax', 'Kayab',
'Cumku', 'Uayeb'));
$daynames = array("seq1" => array(
'Imix', 'Ik', 'Akbal', 'Kan', 'Chicchan',
'Cimi','Manik', 'Lamat', 'Muluc', 'Oc',
'Chuen', 'Eb', 'Ben', 'Ix', 'Men',
'Cib', 'Caban', 'Etz\'nab', 'Cauac', 'Ahau'));
$monthusage = isset($defiency) ? ${$defiency} : $deficient;
// Code Segment 3 – Calculate month number, day numbers etc
foreach($monthusage as $key => $item){
$i++;
foreach($item as $numdays){
$ttl_num=$ttl_num+$numdays;
$ttl_num_months++;
}
}
$revolutionsperyear = $ttl_num / $i;
$numyears = (round((floor($maya) / $revolutionsperyear),0));
$avg_num_month = $ttl_num_months/$i;
$jtl = abs(abs($maya) -
  ceil($revolutionsperyear*($numyears+1)));
while($month==0){
$day=0;
$u=0;
foreach($monthusage as $key => $item){
$t=0;  
foreach($item as $numdays){
$t++;
$tt=0;
for($sh=1;$sh<=$numdays;$sh++){
$ii=$ii+1;
$tt++;
if ($ii==floor($jtl)){
if ($maya>0){
$daynum = $tt;
$month = $t;
} else {
$daynum = $numdays-$tt;
$month = $avg_num_month-$t;
}
$sequence = $key;
$nodaycount=true;
}
}
if ($nodaycount==false)
$day++;
}
$u++;
}
}
$timer = substr($maya, strpos($maya,'.')+1,
strlen($maya)-strpos($maya,'.')-1);
$maya_out= $numyears.'/'.$month.'/'.$daynum.' '.$day.'.'.
 floor(intval(substr($timer,0,2))/100*$timeset['hours']).':'.
 floor(intval(substr($timer,2,2))/100*$timeset['minutes']).':'.
 floor(intval(substr($timer,4,2))/100*$timeset['seconds']).'.'.
 substr($timer,6,strlen($timer)-6);
$maya_obj = array(
 'longcount'=>MayanLongCount($tme),'year'=>abs($numyears),
 'month'=>$month, 'mname' => $monthnames[$sequence][$month-1],
 'day'=>$daynum, 'dayname'=>$daynames[$sequence][$daynum-1],
 'day'=>$daynum, 'jtl'=>$jtl, 'day_count'=>$day,
 'hours'=> floor(intval(substr($timer,0,2))/100
*$timeset['hours']),
 'minute'=> floor(intval(substr($timer,2,2))/100
*$timeset['minutes']),
 'seconds'=>floor(intval(substr($timer,4,2))/100
*$timeset['seconds']),
 'microtime'=>substr($timer,6,strlen($timer)-6),
 'strout'=>$maya_out);
return $maya_obj;
}
?>


martin lindhe

To calculate NTP timestamp from unix timestamp:
<?
function ntptime()
{
return 2208988800 + time();
}
?>
NTP timestamps are represented as a 64-bit unsigned fixed-
point number, in seconds relative to 0h on 1 January 1900.


simon

This will return the mayan long count calendar which cycle reaches 13.0.0.0.0 in 2012, I have had to compress the changemaya function for this code library so if you want to space it out your more than welcome. It works with unix time. To call the routine use the following syntax. The mayan calendar is a day count that is around 5000 years old, it tracks our cestial position in the galaxy
<?php
echo MayanLongCount(time());
function MayanLongCount($tme){

$config = array('ppo' => array(13,0,0,0,0),
'epoch' => strtotime('2012-12-21'));
$diff=(($tme-$config['epoch'])/(60*60*24));
$ppo = changemaya($config['ppo'],ceil($diff));
return $ppo[0].'.'.$ppo[1].'.'.$ppo[2].'.'.$ppo[3].'.'.$ppo[4];
}
function changemaya($ppo,$diff){
if ($diff>0) { $amount=1; } else { $amount=-1; }
for ($sh=1;$sh<abs($diff);$sh++){ if ($ppo[4]+$amount>20){
if ($ppo[3]+$amount>20){ if ($ppo[2]+$amount>20){
if ($ppo[1]+$amount>20){ if ($ppo[0]+$amount>20){
$ppo[0]=0; $ppo[1]=0; $ppo[2]=0; $ppo[3]=0; $ppo[4]=0;
} else { $ppo[1]=0; $ppo[0]=$ppo[0]+$amount;}
} else { $ppo[2]=0; $ppo[1]=$ppo[1]+$amount; }
} else {$ppo[3]=0; $ppo[2]=$ppo[2]+$amount; }
} else { $ppo[4]=0; $ppo[3]=$ppo[3]+$amount; }
} elseif ($ppo[4]+$amount<0){ if ($ppo[3]+$amount<0){
if ($ppo[2]+$amount<0){ if ($ppo[1]+$amount<0){
if ($ppo[0]+$amount<0){ $ppo[0]=20; $ppo[1]=0;
$ppo[2]=0; $ppo[3]=0; $ppo[4]=0;
} else { $ppo[1]=20; $ppo[0]=$ppo[0]+$amount; }
} else { $ppo[2]=20; $ppo[1]=$ppo[1]+$amount; }
} else { $ppo[3]=20; $ppo[2]=$ppo[2]+$amount; }
} else { $ppo[4]=20; $ppo[3]=$ppo[3]+$amount; }
} else { $ppo[4]=$ppo[4]+$amount;}}
return $ppo;
}
?>
Thanks!!


mikebabcock

There are two world calculations for the date of Easter.  The Easter date function should account for this; one used (generally) by the Western world and one (generally) used by the Eastern (the official date used by the East Orthodox Church).

fray ferguson

The following is a light reimplimentation of some of these functions wich can be used in an include file to work around the lack of --with-calendar in php implimentations.
<?php
/* IMPLEMENTS SUBSET OF PHP CALENDAR FUNCTIONS ON SYSTEMS COMPILED W/O --enable-calendar */
if (!function_exists('cal_days_in_month')){
       function cal_days_in_month($a_null, $a_month, $a_year) {
               return date('t', mktime(0, 0, 0, $a_month+1, 0, $a_year));
       }
}
if (!function_exists('cal_to_jd')){
       function cal_to_jd($a_null, $a_month, $a_day, $a_year){
               if ( $a_month <= 2 ){
                    $a_month = $a_month + 12 ;
                    $a_year = $a_year - 1 ;
               }
               $A = intval($a_year/100);
               $B = intval($A/4) ;
               $C = 2-$A+$B ;
               $E = intval(365.25*($a_year+4716)) ;
               $F = intval(30.6001*($a_month+1));
               return intval($C+$a_day+$E+$F-1524) ;
       }
}
if (!function_exists('get_jd_dmy')) {
  function get_jd_dmy($a_jd){
    $W = intval(($a_jd - 1867216.25)/36524.25) ;
    $X = intval($W/4) ;
    $A = $a_jd+1+$W-$X ;
    $B = $A+1524 ;
    $C = intval(($B-122.1)/365.25) ;
    $D = intval(365.25*$C) ;
    $E = intval(($B-$D)/30.6001) ;
    $F = intval(30.6001*$E) ;
    $a_day = $B-$D-$F ;
    if ( $E > 13 ) {
       $a_month=$E-13 ;
       $a_year = $C-4715 ;
    } else {
       $a_month=$E-1 ;
       $a_year=$C-4716 ;
    }
    return array($a_month, $a_day, $a_year) ;
  }
}
if (!function_exists('jdmonthname')) {
       function jdmonthname($a_jd,$a_mode){
               $tmp = get_jd_dmy($a_jd) ;
               $a_time = "$tmp[0]/$tmp[1]/$tmp[2]" ;
               switch($a_mode) {
                       case 0:
                               return strftime("%b",strtotime("$a_time")) ;
                       case 1:
                               return strftime("%B",strtotime("$a_time")) ;
               }
       }
}
if (!function_exists('jddayofweek')) {
       function jddayofweek($a_jd,$a_mode){
               $tmp = get_jd_dmy($a_jd) ;
               $a_time = "$tmp[0]/$tmp[1]/$tmp[2]" ;
               switch($a_mode) {
                       case 1:
                               return strftime("%A",strtotime("$a_time")) ;
                       case 2:
                               return strftime("%a",strtotime("$a_time")) ;
                       default:
                               return strftime("%w",strtotime("$a_time")) ;
               }
       }
}
?>


kmcm

if, like me, you don't have a PHP build that includes the cal functions, you may want to use this function for sorting out leap year.
function days_in_feb($year){
//$year must be YYYY
//[gregorian] leap year math :

if ($year < 0) $year++;
$year += 4800;
   if ( ($year % 4) == 0) {
if (($year % 100) == 0) {
   if (($year % 400) == 0) {
return(29);
   } else {
return(28);
   }
} else {
   return(29);
}
   } else {
return(28);
   }
}
of course the next leap year isn't until the end of the century but this makes for timeless code I guess ...or if you are using 2000 in your dates or are going far back in time, etc, it is necessary.


curlee

I solved a problem with Julian dates that are used in the JD Edwards ERP package (running on AS/400).  The Julian format for this system is as follows:  CYYDDD
Where C is 0 for 1900 and 1 for 2000
DDD is the day of the year count
I used the mktime built-in php function to convert dates to the normal DD/MM/YYYY format.  This function will convert dates that are between 1970 and 2038 (limitation of unix timestamps and the mktime function)
The $jde_date var needs to be a 6 len STRING.... if you use a numeric var type it will drop the leading 0 for any date that represents 1900.... this will botch the substr functions and thus make the whole thing wrong.  
function jde_date_conv($jde_date)
{
$ct = substr($jde_date,0,1);
$yr = substr($jde_date,1,2);
$dy = substr($jde_date,3,3);
if($ct == 0) $yr_pfx = 19;
if($ct == 1) $yr_pfx = 20;
$tlt_yr = $yr_pfx.$yr;
$base_time = mktime(0,0,0,1,0,$tlt_yr);
$unix_time = ($dy * 86400) + $base_time;
return date("m/d/Y" , $unix_time);
}


david dot scourfield

I created this function a while ago and needed it again recently, so had to trawl through some old files to find it. Thought I'd post it here in case anyone else finds it useful.
<?php
/*
*    Function to calculate which days are British bank holidays (England & Wales) for a given year.
*
*    Created by David Scourfield, 07 August 2006, and released into the public domain.
*    Anybody may use and/or modify this code.
*
*    USAGE:
*
*    array calculateBankHolidays(int $yr)
*
*    ARGUMENTS
*
*    $yr = 4 digit numeric representation of the year (eg 1997).
*
*    RETURN VALUE
*
*    Returns an array of strings where each string is a date of a bank holiday in the format "yyyy-mm-dd".
*
*    See example below
*
*/
function calculateBankHolidays($yr) {
$bankHols = Array();
// New year's:
switch ( date("w", strtotime("$yr-01-01 12:00:00")) ) {
case 6:
$bankHols[] = "$yr-01-03";
break;
case 0:
$bankHols[] = "$yr-01-02";
break;
default:
$bankHols[] = "$yr-01-01";
}
// Good friday:
$bankHols[] = date("Y-m-d", strtotime( "+".(easter_days($yr) - 2)." days", strtotime("$yr-03-21 12:00:00") ));
// Easter Monday:
$bankHols[] = date("Y-m-d", strtotime( "+".(easter_days($yr) + 1)." days", strtotime("$yr-03-21 12:00:00") ));
// May Day:
if ($yr == 1995) {
$bankHols[] = "1995-05-08"; // VE day 50th anniversary year exception
} else {
switch (date("w", strtotime("$yr-05-01 12:00:00"))) {
case 0:
$bankHols[] = "$yr-05-02";
break;
case 1:
$bankHols[] = "$yr-05-01";
break;
case 2:
$bankHols[] = "$yr-05-07";
break;
case 3:
$bankHols[] = "$yr-05-06";
break;
case 4:
$bankHols[] = "$yr-05-05";
break;
case 5:
$bankHols[] = "$yr-05-04";
break;
case 6:
$bankHols[] = "$yr-05-03";
break;
}
}
// Whitsun:
if ($yr == 2002) { // exception year
$bankHols[] = "2002-06-03";
$bankHols[] = "2002-06-04";
} else {
switch (date("w", strtotime("$yr-05-31 12:00:00"))) {
case 0:
$bankHols[] = "$yr-05-25";
break;
case 1:
$bankHols[] = "$yr-05-31";
break;
case 2:
$bankHols[] = "$yr-05-30";
break;
case 3:
$bankHols[] = "$yr-05-29";
break;
case 4:
$bankHols[] = "$yr-05-28";
break;
case 5:
$bankHols[] = "$yr-05-27";
break;
case 6:
$bankHols[] = "$yr-05-26";
break;
}
}
// Summer Bank Holiday:
switch (date("w", strtotime("$yr-08-31 12:00:00"))) {
case 0:
$bankHols[] = "$yr-08-25";
break;
case 1:
$bankHols[] = "$yr-08-31";
break;
case 2:
$bankHols[] = "$yr-08-30";
break;
case 3:
$bankHols[] = "$yr-08-29";
break;
case 4:
$bankHols[] = "$yr-08-28";
break;
case 5:
$bankHols[] = "$yr-08-27";
break;
case 6:
$bankHols[] = "$yr-08-26";
break;
}
// Christmas:
switch ( date("w", strtotime("$yr-12-25 12:00:00")) ) {
case 5:
$bankHols[] = "$yr-12-25";
$bankHols[] = "$yr-12-28";
break;
case 6:
$bankHols[] = "$yr-12-27";
$bankHols[] = "$yr-12-28";
break;
case 0:
$bankHols[] = "$yr-12-26";
$bankHols[] = "$yr-12-27";
break;
default:
$bankHols[] = "$yr-12-25";
$bankHols[] = "$yr-12-26";
}
// Millenium eve
if ($yr == 1999) {
$bankHols[] = "1999-12-31";
}
return $bankHols;
}
/*
*    EXAMPLE:
*
*/
header("Content-type: text/plain");
$bankHolsThisYear = calculateBankHolidays(2007);
print_r($bankHolsThisYear);
?>
Will output this result:
Array
(
   [0] => 2007-01-01
   [1] => 2007-04-06
   [2] => 2007-04-09
   [3] => 2007-05-07
   [4] => 2007-05-28
   [5] => 2007-08-27
   [6] => 2007-12-25
   [7] => 2007-12-26
)


jthome

Had a similar problem as curlee, except I needed to create a JDE_ERP date.  [format is CYYDDD]
<?php
function jde_date_create($month, $day, $year){
/*
*  NOTE: $month and $day CANNOT have leading zeroes,
*        $year must be'YYYY' format
*/
$jde_year_prefix = substr($year, 0, 1) - 1;
$jde_year_suffix = substr($year, -2);

//note that valid years for mktime are 1902-2037
$timestamp = mktime(0,0,0,$month, $day, $year);
$baseline_timestamp = mktime(0,0,0,1,0,$year);

$day_count = round(($timestamp - $baseline_timestamp)/86400);
$day_count_padded = str_pad($day_count,3,"0",STR_PAD_LEFT);
return ($jde_year_prefix . $jde_year_suffix . $day_count_padded);

}
echo jde_date_create(6,25,2000);// will return '103176'
?>
--
Jim


schotm29

fRay Fergusons light reimplimentation doesn't work all of the time, because of the inaccuracy in the calculations (it is quite accurate but not accurate enough for a live web app)

dy64

Best performance:
/*
* Find the number of days in a month
* Year is between 1 and 32767 inclusive
* Month is between 1 and 12 inclusive
*/
function DayInMonth($month, $year) {
var $daysInMonth = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if ($month != 2) return $daysInMonth[$month - 1];
return (checkdate($month, 29, $year)) ? 29 : 28;
}


amichauer

<?php
class HijriCalendar
{
   function monthName($i) // $i = 1..12
   {
       static $month  = array(
           "Möxärräm", "Safar", "Rabig-äl-Äwwäl", "Rabig-äl-Axír",
           "Cömäd-äl-Äwwäl", "Cömäd-äl-Axír", "Racäb", "Þäðbän",
           "Ramazan", "Þäwäl", "Zö-äl-Qäðdä", "Zö-äl-Xiccä"
       );
       return $month[$i-1];
   }
   function GregorianToHijri($time = null)
   {
       if ($time === null) $time = time();
       $m = date('m', $time);
       $d = date('d', $time);
       $y = date('Y', $time);
       return HijriCalendar::JDToHijri(
           cal_to_jd(CAL_GREGORIAN, $m, $d, $y));
   }
   function HijriToGregorian($m, $d, $y)
   {
       return jd_to_cal(CAL_GREGORIAN,
           HijriCalendar::HijriToJD($m, $d, $y));
   }
   # Julian Day Count To Hijri
   function JDToHijri($jd)
   {
       $jd = $jd - 1948440 + 10632;
       $n  = (int)(($jd - 1) / 10631);
       $jd = $jd - 10631 * $n + 354;
       $j  = ((int)((10985 - $jd) / 5316)) *
           ((int)(50 * $jd / 17719)) +
           ((int)($jd / 5670)) *
           ((int)(43 * $jd / 15238));
       $jd = $jd - ((int)((30 - $j) / 15)) *
           ((int)((17719 * $j) / 50)) -
           ((int)($j / 16)) *
           ((int)((15238 * $j) / 43)) + 29;
       $m  = (int)(24 * $jd / 709);
       $d  = $jd - (int)(709 * $m / 24);
       $y  = 30*$n + $j - 30;
       return array($m, $d, $y);
   }
   # Hijri To Julian Day Count
   function HijriToJD($m, $d, $y)
   {
       return (int)((11 * $y + 3) / 30) +
           354 * $y + 30 * $m -
           (int)(($m - 1) / 2) + $d + 1948440 - 385;
   }
};
$hijri = HijriCalendar::GregorianToHijri( time() );
echo $hijri[1].'. '.HijriCalendar::monthName($hijri[0]).' '.$hijri[2];
?>


Change Language


Follow Navioo On Twitter
.NET Functions
Apache-specific Functions
Alternative PHP Cache
Advanced PHP debugger
Array Functions
Aspell functions [deprecated]
BBCode Functions
BCMath Arbitrary Precision Mathematics Functions
PHP bytecode Compiler
Bzip2 Compression Functions
Calendar Functions
CCVS API Functions [deprecated]
Class/Object Functions
Classkit Functions
ClibPDF Functions [deprecated]
COM and .Net (Windows)
Crack Functions
Character Type Functions
CURL
Cybercash Payment Functions
Credit Mutuel CyberMUT functions
Cyrus IMAP administration Functions
Date and Time Functions
DB++ Functions
Database (dbm-style) Abstraction Layer Functions
dBase Functions
DBM Functions [deprecated]
dbx Functions
Direct IO Functions
Directory Functions
DOM Functions
DOM XML Functions
enchant Functions
Error Handling and Logging Functions
Exif Functions
Expect Functions
File Alteration Monitor Functions
Forms Data Format Functions
Fileinfo Functions
filePro Functions
Filesystem Functions
Filter Functions
Firebird/InterBase Functions
Firebird/Interbase Functions (PDO_FIREBIRD)
FriBiDi Functions
FrontBase Functions
FTP Functions
Function Handling Functions
GeoIP Functions
Gettext Functions
GMP Functions
gnupg Functions
Net_Gopher
Haru PDF Functions
hash Functions
HTTP
Hyperwave Functions
Hyperwave API Functions
i18n Functions
IBM Functions (PDO_IBM)
IBM DB2
iconv Functions
ID3 Functions
IIS Administration Functions
Image Functions
Imagick Image Library
IMAP
Informix Functions
Informix Functions (PDO_INFORMIX)
Ingres II Functions
IRC Gateway Functions
PHP / Java Integration
JSON Functions
KADM5
LDAP Functions
libxml Functions
Lotus Notes Functions
LZF Functions
Mail Functions
Mailparse Functions
Mathematical Functions
MaxDB PHP Extension
MCAL Functions
Mcrypt Encryption Functions
MCVE (Monetra) Payment Functions
Memcache Functions
Mhash Functions
Mimetype Functions
Ming functions for Flash
Miscellaneous Functions
mnoGoSearch Functions
Microsoft SQL Server Functions
Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
Mohawk Software Session Handler Functions
mSQL Functions
Multibyte String Functions
muscat Functions
MySQL Functions
MySQL Functions (PDO_MYSQL)
MySQL Improved Extension
Ncurses Terminal Screen Control Functions
Network Functions
Newt Functions
NSAPI-specific Functions
Object Aggregation/Composition Functions
Object property and method call overloading
Oracle Functions
ODBC Functions (Unified)
ODBC and DB2 Functions (PDO_ODBC)
oggvorbis
OpenAL Audio Bindings
OpenSSL Functions
Oracle Functions [deprecated]
Oracle Functions (PDO_OCI)
Output Control Functions
Ovrimos SQL Functions
Paradox File Access
Parsekit Functions
Process Control Functions
Regular Expression Functions (Perl-Compatible)
PDF Functions
PDO Functions
Phar archive stream and classes
PHP Options&Information
POSIX Functions
Regular Expression Functions (POSIX Extended)
PostgreSQL Functions
PostgreSQL Functions (PDO_PGSQL)
Printer Functions
Program Execution Functions
PostScript document creation
Pspell Functions
qtdom Functions
Radius
Rar Functions
GNU Readline
GNU Recode Functions
RPM Header Reading Functions
runkit Functions
SAM - Simple Asynchronous Messaging
Satellite CORBA client extension [deprecated]
SCA Functions
SDO Functions
SDO XML Data Access Service Functions
SDO Relational Data Access Service Functions
Semaphore
SESAM Database Functions
PostgreSQL Session Save Handler
Session Handling Functions
Shared Memory Functions
SimpleXML functions
SNMP Functions
SOAP Functions
Socket Functions
Standard PHP Library (SPL) Functions
SQLite Functions
SQLite Functions (PDO_SQLITE)
Secure Shell2 Functions
Statistics Functions
Stream Functions
String Functions
Subversion Functions
Shockwave Flash Functions
Swish Functions
Sybase Functions
TCP Wrappers Functions
Tidy Functions
Tokenizer Functions
Unicode Functions
URL Functions
Variable Handling Functions
Verisign Payflow Pro Functions
vpopmail Functions
W32api Functions
WDDX Functions
win32ps Functions
win32service Functions
xattr Functions
xdiff Functions
XML Parser Functions
XML-RPC Functions
XMLReader functions
XMLWriter Functions
XSL functions
XSLT Functions
YAZ Functions
YP/NIS Functions
Zip File Functions
Zlib Compression Functions
eXTReMe Tracker