FACTOID # 165: The expatriate population from Cape Verde is larger than its domestic one.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Php" also viewed:
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS   

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Php

PHP
Paradigm imperative, object-oriented
Appeared in 1995
Designed by Rasmus Lerdorf
Developer The PHP Group
Latest release 5.2.6/ May 1, 2008 (2008-05-01); 64 days ago
Latest unstable release 5.3.0-dev and 6.0-dev[1]
Typing discipline Dynamic, weak
Major implementations Roadsend PHP, Phalanger, Quercus, Project Zero
Influenced by C, Perl, Java, C++, C#, Python
Influenced Php4delphi
OS Cross-platform
License PHP License
Website http://php.net/

PHP (a recursive acronym for PHP: Hypertext Preprocessor)[2] is a computer scripting language, originally designed for producing dynamic web pages. It is for server-side scripting, but can be used from a command line interface or in standalone graphical applications.[3] PHP is a three-letter acronym that can mean: PHP - the open source programming language Parallel History Project Philippine peso This is a disambiguation page — a navigational aid which lists other pages that might otherwise share the same title. ... Image File history File links PHP_logo. ... A programming paradigm is a fundamental style of computer programming. ... In computer science, imperative programming, as opposed to declarative programming, is a programming paradigm that describes computation in terms of a program state and statements that change the program state. ... Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ... Rasmus Lerdorf (born November 22, 1968 in Qeqertarsuaq, Greenland) is a Danish-Canadian programmer and the author of the first version of the PHP web programming language. ... For other uses, see Software developer (disambiguation). ... A software release refers to the creation and availability of a new version of a computer software product. ... is the 121st day of the year (122nd in leap years) in the Gregorian calendar. ... 2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Common Era (or Anno Domini), in accordance with the Gregorian calendar. ... In computer science, a type system defines how a programming language classifies values and expressions into types, how it can manipulate those types and how they interact. ... Look up Implementation in Wiktionary, the free dictionary. ... Roadsend PHP is an open source implementation of the PHP language. ... This article is being considered for deletion in accordance with Wikipedias deletion policy. ... Miku has an ability that allows her to sense the supernatural Fatal Frame (known as Project Zero in Japan and Europe) is a survival horror video game series, so far consisting of two games. ... In computing, C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... For other uses, see Perl (disambiguation). ... Java language redirects here. ... For a WikiBook on programming with C++, see Wikibooks: C++ Programming. ... C# (see section on name, pronunciation) is an object-oriented programming language developed by Microsoft as part of the . ... Python is a general-purpose, high-level programming language. ... An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ... A cross-platform (or platform independent) programming language, software application or hardware device works on more than one system platform (e. ... A software license is a legal agreement which may take the form of a proprietary or gratuitous license as well as a memorandum of contract between a producer and a user of computer software. ... For the PHP Cold War history project, see Parallel History Project. ... A website (alternatively, web site or Web site) is a collection of Web pages, images, videos or other digital assets that is hosted on one or more web servers, usually accessible via the Internet. ... A recursive acronym (or occasionally recursive initialism) is an abbreviation which refers to itself in the expression for which it stands. ... A scripting language, script language or extension language, is a programming language that controls software application. ... In classical hypertext navigation occurs among static documents, and, for web users, this experience is reproduced using static web pages. ... Server-side scripting is a web server technology in which a users request is fulfilled by running a script directly on the web server to generate dynamic HTML pages. ... This article or section does not adequately cite its references or sources. ... Stand-alone is a confusing and misleading term, used to refer to various categories of computer programs, but rarely in a consistent fashion. ... GUI redirects here. ...


While PHP was originally created by Rasmus Lerdorf in 1995, the main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification.[4] Released under the PHP License, the Free Software Foundation considers it to be free software.[5] Rasmus Lerdorf (born November 22, 1968 in Qeqertarsuaq, Greenland) is a Danish-Canadian programmer and the author of the first version of the PHP web programming language. ... De facto is a Latin expression that means in fact or in practice. It is commonly used as opposed to de jure (meaning by law) when referring to matters of law or governance or technique (such as standards), that are found in the common experience as created or developed without... A formal specification is a mathematical description of software or hardware that may be used to develop an implementation. ... For the PHP Cold War history project, see Parallel History Project. ... The Free Software Foundation (FSF) is a non-profit corporation founded in October 1985 by Richard Stallman to support the free software movement (free as in freedom), and in particular the GNU project. ... Free software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things. ...


PHP is a widely-used general-purpose scripting language that is especially suited for web development and can be embedded into HTML. It generally runs on a web server, taking PHP code as its input and creating web pages as output. It can be deployed on most web servers and on almost every operating system and platform free of charge.[6] PHP is installed on more than 20 million websites and 1 million web servers.[citation needed] It is also the most popular Apache module among computers using Apache as a web server.[7] The most recent major release of PHP was version 5.2.6 on May 1, 2008.[8] Web development is a broad term for any activities related to developing a web site for the World Wide Web or an intranet. ... HTML, an initialism of HyperText Markup Language, is the predominant markup language for web pages. ... The inside/front of a Dell PowerEdge web server The term Web server can mean one of two things: A computer program that is responsible for accepting HTTP requests from clients, which are known as Web browsers, and serving them HTTP responses along with optional data contents, which usually are... A screenshot of a web page. ... An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ... In computing, a platform describes some sort of framework, either in hardware or software, which allows software to run. ... The inside/front of a Dell PowerEdge web server The term Web server can mean one of two things: A computer program that is responsible for accepting HTTP requests from clients, which are known as Web browsers, and serving them HTTP responses along with optional data contents, which usually are... The Apache HTTP Server, commonly referred to simply as Apache, is a web server notable for playing a key role in the initial growth of the World Wide Web. ... is the 121st day of the year (122nd in leap years) in the Gregorian calendar. ... 2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Common Era (or Anno Domini), in accordance with the Gregorian calendar. ...

Contents

History

Rasmus Lerdorf, who wrote the original Common Gateway Interface binaries, and Andi Gutmans and Zeev Suraski, who rewrote the parser that formed PHP 3 Rasmus Lerdorf, who wrote the original Common Gateway Interface binaries, and Andi Gutmans and Zeev Suraski, who rewrote the parser that formed PHP 3 Rasmus Lerdorf, who wrote the original Common Gateway Interface binaries, and Andi Gutmans and Zeev Suraski, who rewrote the parser that formed PHP 3
Rasmus Lerdorf, who wrote the original Common Gateway Interface binaries, and Andi Gutmans and Zeev Suraski, who rewrote the parser that formed PHP 3

PHP originally stood for Personal Home Page. It began in 1994 as a set of Common Gateway Interface binaries written in the C programming language by the Danish/Greenlandic programmer Rasmus Lerdorf. Lerdorf initially created these Personal Home Page Tools to replace a small set of Perl scripts he had been using to maintain his personal homepage. The tools were used to perform tasks such as displaying his résumé and recording how much traffic his page was receiving.[4] He combined these binaries with his Form Interpreter to create PHP/FI, which had more functionality. PHP/FI included a larger C implementation and could communicate with databases enabling the building of simple, dynamic web applications. He released PHP publicly on June 8, 1995 to speed up the finding of bugs and improving the code.[9] This release was named PHP version 2 and already had the basic functionality that PHP has today. This included Perl-like variables, form handling, and the ability to embed HTML. The syntax was similar to Perl but was more limited, simpler, and less consistent.[4] Rasmus Lerdorf (born November 22, 1968 in Qeqertarsuaq, Greenland) is a Danish-Canadian programmer and the author of the first version of the PHP web programming language. ... The Common Gateway Interface (CGI) is a standard protocol for interfacing external application software with an information server, commonly a web server. ... Andi Gutmans is an Israeli programmer, PHP developer and co-founder of Zend Technologies. ... Zeev Suraski is an Israeli programmer, PHP developer and co-founder of Zend Technologies. ... A parser is a computer program or a component of a program that analyses the grammatical structure of an input, with respect to a given formal grammar, a process known as parsing. ... The Common Gateway Interface (CGI) is a standard protocol for interfacing external application software with an information server, commonly a web server. ... A Hexdump of a JPEG image. ... Wikibooks has a book on the topic of C Programming The C programming language (often, just C) is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... Rasmus Lerdorf (born November 22, 1968 in Qeqertarsuaq, Greenland) is a Danish-Canadian programmer and the author of the first version of the PHP web programming language. ... For other uses, see Perl (disambiguation). ... A personal homepage is a web site belonging to one person. ... Look up résumé, curriculum vitae, resume in Wiktionary, the free dictionary. ... // Web traffic is the amount of data sent and received by visitors to a web site. ... In computing, C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... This article is principally about managing and structuring the collections of data held on computers. ... In software engineering, a web application is an application delivered to users from a web server over a network such as the World Wide Web or an intranet. ... is the 159th day of the year (160th in leap years) in the Gregorian calendar. ... Year 1995 (MCMXCV) was a common year starting on Sunday. ... A software bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from behaving as intended (e. ...


Zeev Suraski and Andi Gutmans, two Israeli developers at the Technion IIT, rewrote the parser in 1997 and formed the base of PHP 3, changing the language's name to the recursive initialism PHP: Hypertext Preprocessor.[4] The development team officially released PHP/FI 2 in November 1997 after months of beta testing. Afterwards, public testing of PHP 3 began, and the official launch came in June 1998. Suraski and Gutmans then started a new rewrite of PHP's core, producing the Zend Engine in 1999.[10] They also founded Zend Technologies in Ramat Gan, Israel, which manages the development of PHP.[4] Zeev Suraski is an Israeli programmer, PHP developer and co-founder of Zend Technologies. ... Andi Gutmans is an Israeli programmer, PHP developer and co-founder of Zend Technologies. ... Computer Science Faculty Building The Technion – Israel Institute of Technology (Hebrew: ; commonly abbreviated as Technion IIT) is a university in Haifa, Israel, founded 1924. ... A parser is a computer program or a component of a program that analyses the grammatical structure of an input, with respect to a given formal grammar, a process known as parsing. ... A recursive acronym (or occasionally recursive initialism) is an abbreviation which refers to itself in the expression for which it stands. ... Software development stages In computer programming, development stage terminology expresses how the development of a piece of software has progressed and how much further development it may require. ... A rewrite in computer programming is the act or result of re-implementing a large portion of existing functionality without re-use of its source code. ... The Zend Engine is an open source scripting engine (a Virtual Machine), commonly known for the important role it plays in the web automation language PHP. It was originally developed by Andi Gutmans and Zeev Suraski while they were students at the Technion - Israel Institute of Technology. ... Zend Technologies Ltd. ... Ramat Gan (רמת-גן) is a city in Israel, on the central coastal strip, just east of Tel Aviv, and part of the metropolis known as Gush Dan, in the Tel Aviv District. ...


On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was released.[4] On July 13, 2004, PHP 5 was released, powered by the new Zend Engine II.[4] PHP 5 included new features such as improved support for object-oriented programming, the PHP Data Objects extension (which defines a lightweight and consistent interface for accessing databases), and numerous performance enhancements.[11] The most recent update released by The PHP Group is for the older PHP version 4 code branch. As of January 2008, this branch is up to version 4.4.8. PHP 4 is no longer under active development but will be supported by security updates until August 8, 2008.[12][13] is the 142nd day of the year (143rd in leap years) in the Gregorian calendar. ... Year 2000 (MM) was a leap year starting on Saturday. ... is the 194th day of the year (195th in leap years) in the Gregorian calendar. ... Year 2004 (MMIV) was a leap year starting on Thursday of the Gregorian calendar. ... Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ... is the 220th day of the year (221st in leap years) in the Gregorian calendar. ... 2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Common Era (or Anno Domini), in accordance with the Gregorian calendar. ...


In 2008, PHP 5 became the only stable version under development. Late static binding has been missing from PHP and will be added in version 5.3.[14] [15] Alongside PHP 5, PHP 6 is also under active development. Major changes include the removal of register_globals[16], magic quotes, and safe mode.[12][17] Magic quotes are a controversial feature of the PHP scripting language intended to help prevent SQL injection attacks. ... Safe Mode is a diagnostic mode used by certain computer operating systems, including Microsoft Windows and Mac OS X, as well as other complex electronic devices. ...


PHP does not have complete native support for Unicode or multibyte strings;[18] unicode support will be included in PHP 6.[19] Many high profile open source projects ceased to support PHP 4 in new code as of February 5, 2008, due to the GoPHP5 initiative, provided by a consortium of PHP developers promoting the transition from PHP 4 to PHP 5.[20][21] The Unicode Standard, Version 5. ... is the 36th day of the year in the Gregorian calendar. ... 2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Common Era (or Anno Domini), in accordance with the Gregorian calendar. ...


It runs in both 32-bit and 64-bit environments, but on Windows the only official distribution is 32-bit, requiring Windows 32-bit compatibility mode to be enabled while using IIS in a 64-bit Windows environment. There is a third-party distribution[22] available for 64-bit Windows. 32-bit is a term applied to processors, and computer architectures which manipulate the address and data in 32-bit chunks. ... In computing, a 64-bit component is one in which data are processed or stored in 64-bit units (words). ... IIS (Microsoft Internet Information Services or Server) is a set of Internet based services for Windows machines. ...


Release history

Meaning
Red Old release; not supported
Yellow Old release; still supported
Green Current release
Blue Future release
Major Version Minor Version Release date Notes
1.0 1.0.0 1995-06-08 Officially called "Personal Home Page Tools (PHP Tools)". This is the first use of the name "PHP".[4]
2.0 2.0.0 1996-04-16 Considered by its creator as the "fastest and simplest tool" for creating dynamic web pages.[4]
3.0 3.0.0 1998-06-06 Development moves from one person to multiple developers. Zeev Suraski and Andi Gutmans rewrite the base for this version.[4]
4.0 4.0.0 2000-05-22 Added more advanced two-stage parse/execute tag-parsing system called the Zend engine.[23]
4.1.0 2001-12-10 Introduced 'superglobals' ($_GET, $_POST, $_SESSION, etc.)[23]
4.2.0 2002-04-22 Disabled register_globals by default. Data received over the network is not inserted directly into the global namespace anymore, closing possible security holes in applications.[23][24]
4.3.0 2002-12-27 Introduced the CLI, in addition to the CGI.[23]
4.4.0 2005-07-11 Added man pages for phpize and php-config scripts.[23]
4.4.8 2008-01-03 Several security enhancements and bug fixes. End of life release for PHP 4. Security updates only until 2008-08-08, if necessary.[25][26]
5.0 5.0.0 2004-07-13 Zend Engine II with a new object model.[8]
5.1.0 2005-11-24 Performance improvements with introduction of compiler variables in re-engineered PHP Engine.[8]
5.2.0 2006-11-02 Enabled the filter extension by default.[8]
5.2.6 2008-05-01[27] Several security enhancements and bug fixes[28]
5.3.0 No date set Namespace support; Improved XML support through use of XMLReader and XMLWriter; SOAP support [29], Late static bindings, Jump label (limited goto)
6.0 6.0.0 No date set Unicode support; removal of 'ereg()', 'register_globals', 'magic_quotes' and 'safe_mode'; Alternative PHP Cache; Removal of mime_magic and rewrite of fileinfo() for better MIME support[30]

Year 1995 (MCMXCV) was a common year starting on Sunday. ... is the 159th day of the year (160th in leap years) in the Gregorian calendar. ... Year 1996 (MCMXCVI) was a leap year starting on Monday (link will display full 1996 Gregorian calendar). ... is the 106th day of the year (107th in leap years) in the Gregorian calendar. ... Year 1998 (MCMXCVIII) was a common year starting on Thursday (link will display full 1998 Gregorian calendar). ... is the 157th day of the year (158th in leap years) in the Gregorian calendar. ... Year 2000 (MM) was a leap year starting on Saturday. ... is the 142nd day of the year (143rd in leap years) in the Gregorian calendar. ... This article is about the year. ... is the 344th day of the year (345th in leap years) in the Gregorian calendar. ... Also see: 2002 (number). ... is the 112th day of the year (113th in leap years) in the Gregorian calendar. ... In computer programming, a global variable is a variable that is accessible in every scope. ... Also see: 2002 (number). ... December 27 is the 361st day of the year in the Gregorian calendar (362nd in leap years). ... Year 2005 (MMV) was a common year starting on Saturday (link displays full calendar) of the Gregorian calendar. ... is the 192nd day of the year (193rd in leap years) in the Gregorian calendar. ... 2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Common Era (or Anno Domini), in accordance with the Gregorian calendar. ... is the 3rd day of the year in the Gregorian calendar. ... Year 2004 (MMIV) was a leap year starting on Thursday of the Gregorian calendar. ... is the 194th day of the year (195th in leap years) in the Gregorian calendar. ... Year 2005 (MMV) was a common year starting on Saturday (link displays full calendar) of the Gregorian calendar. ... is the 328th day of the year (329th in leap years) in the Gregorian calendar. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ... is the 306th day of the year (307th in leap years) in the Gregorian calendar. ... 2008 (MMVIII) is the current year, a leap year that started on Tuesday of the Common Era (or Anno Domini), in accordance with the Gregorian calendar. ... is the 121st day of the year (122nd in leap years) in the Gregorian calendar. ... A namespace is a context in which a group of one or more identifiers might exist. ... GOTO is a statement found in many computer programming languages. ... The Unicode Standard, Version 5. ... For mime as an art form, see mime artist. ...

Usage

PHP is a general-purpose scripting language that is especially suited for web development. PHP generally runs on a web server, taking PHP code as its input and creating web pages as output. It can also be used for command-line scripting and client-side GUI applications. PHP can be deployed on most web servers, many operating systems and platforms, and can be used with many relational database management systems. It is available free of charge, and the PHP Group provides the complete source code for users to build, customize and extend for their own use.[6] Web development is a broad term for any activities related to developing a web site for the World Wide Web or an intranet. ... The inside/front of a Dell PowerEdge web server The term Web server can mean one of two things: A computer program that is responsible for accepting HTTP requests from clients, which are known as Web browsers, and serving them HTTP responses along with optional data contents, which usually are... A screenshot of a web page. ... A command line interface or CLI is a method of interacting with a computer by giving it lines of textual commands (that is, a sequence of characters) either from keyboard input or from a script. ... Client/Server is a network application architecture which separates the client (usually the graphical user interface) from the server. ... GUI redirects here. ... The inside/front of a Dell PowerEdge web server The term Web server can mean one of two things: A computer program that is responsible for accepting HTTP requests from clients, which are known as Web browsers, and serving them HTTP responses along with optional data contents, which usually are... An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ... In computing, a platform describes some sort of framework, either in hardware or software, which allows software to run. ... A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by E. F. Codd. ...


PHP primarily acts as a filter[31], taking input from a file or stream containing text and/or PHP instructions and outputs another stream of data; most commonly the output will be HTML. It can automatically detect the language of the user.[32][33] From PHP 4, the PHP parser compiles input to produce bytecode for processing by the Zend Engine, giving improved performance over its interpreter predecessor.[34] A filter is a computer program to process a data stream. ... A parser is a computer program or a component of a program that analyses the grammatical structure of an input, with respect to a given formal grammar, a process known as parsing. ... This article is about the computing term. ... Bytecode is a binary representation of an executable program designed to be executed by a virtual machine rather than by dedicated hardware. ... The Zend Engine is an open source scripting engine (a Virtual Machine), commonly known for the important role it plays in the web automation language PHP. It was originally developed by Andi Gutmans and Zeev Suraski while they were students at the Technion - Israel Institute of Technology. ... In computer science, an interpreter is a computer program that executes, or performs, instructions written in a computer programming language. ...


Originally designed to create dynamic web pages, PHP's principal focus is server-side scripting[35], and it is similar to other server-side scripting languages that provide dynamic content from a web server to a client, such as Microsoft's ASP.NET system, Sun Microsystems' JavaServer Pages[36], and mod_perl. PHP has also attracted the development of many frameworks that provide building blocks and a design structure to promote rapid application development (RAD). Some of these include CakePHP, PRADO, Symfony and Zend Framework, offering features similar to other web application frameworks. Server-side scripting is a web server technology in which a users request is fulfilled by running a script directly on the web server to generate dynamic HTML pages. ... In computing, a client is a system that accesses a (remote) service on another computer by some kind of network. ... Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... ASP.NET logo ASP.NET is a web application framework marketed by Microsoft that programmers can use to build dynamic web sites, web applications and XML web services. ... Sun Microsystems, Inc. ... // JavaServer Pages (JSP) is a Java technology that allows software developers to dynamically generate HTML, XML or other types of documents in response to a Web client request. ... mod_perl is an optional module for the Apache web server. ... A software framework is a reusable design for a software system (or subsystem). ... Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. ... CakePHP is an open source web application framework written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License. ... Prado may refer to: Land Cruiser Prado, a 4WD vehicle from Toyota Museo del Prado, an art gallery in Madrid Prado, Spain, a village in Castile-Leon the prado dam Prado River Miguelanxo Prado, a spanish comic book artist Ed Prado, a U.S. appeals court judge PRADO, a PHP... Symfony is a web application framework written in PHP which follows the model-view-controller (MVC) paradigm. ... Zend Framework is an open source, object-oriented web application framework implemented in PHP 5 and licensed under the New BSD License. ... This is a list of notable web application frameworks, used for creating web applications. ...


The LAMP architecture has become popular in the web industry as a way of deploying web applications. PHP is commonly used as the P in this bundle alongside Linux, Apache and MySQL, although the P may also refer to Python or Perl. The acronym LAMP refers to a solution stack of software, usually free software / open-source software, used to run dynamic Web sites or servers. ... This article is about operating systems that use the Linux kernel. ... The Apache HTTP Server, commonly referred to simply as Apache, is a web server notable for playing a key role in the initial growth of the World Wide Web. ... MySQL (pronounced (IPA) , my S-Q-L[1]) is a multithreaded, multi-user SQL database management system (DBMS)[2] which has, according to MySQL AB, more than 10 million installations. ... Python is a general-purpose, high-level programming language. ... For other uses, see Perl (disambiguation). ...


As of April 2007, over 20 million Internet domains were hosted on servers with PHP installed, and PHP was recorded as the most popular Apache module.[7]


Security

Insecure scripts written in PHP are popular targets of hackers who exploit poorly built applications written in PHP. Software vulnerabilities related to PHP are identified among the CVE (Common Vulnerabilities and Exposures) records, available from the National Vulnerability Database. The proportion of vulnerabilities related to PHP, out of the total of all common vulnerabilities, amounted to: 12% in 2003, 20% in 2004, 28% in 2005, 43% in 2006, 36% in 2007, and 33.8% for the first quarter of 2008. More than a quarter of all software vulnerabilities listed in this database are related to scripts written in PHP, and more than a third of vulnerabilities listed recently. Most of these vulnerabilities can be exploited remotely, that is without being logged on the computer hosting the vulnerable application.[37] Such exploitation is made possible due to poor programming habits, such as failing to check data before entering it into a database, and features of the language such as register_globals, which is now deprecated.[24] These result in code injection, cross-site scripting and other application security issues. Such attacks are not exclusive to PHP and most can be avoided simply by following proper coding techniques and principles. This article is about computer security hackers. ... The Common Vulnerabilities and Exposures (CVE) list provides an index of standardized names for vulnerabilities and other information security exposures - CVE aims to standardize the names for all publicly known vulnerabilities and security exposures. ... To meet Wikipedias quality standards, this article or section may require cleanup. ... Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web applications which allow code injection by malicious web users into the web pages viewed by other users. ... Application Security encompasses measures taken to prevent exceptions in the applications or the underlying systems security policy (vulnerabilities) through flaws in the application’s design, development, or deployment. ...


Syntax

PHP only parses code within its delimiters. Anything outside its delimiters is sent directly to the output and is not parsed by PHP. The most common delimiters are <?php and ?>, which are open and close delimiters respectively. <script language="php"> and </script> delimiters are also available. Short tags (<? or <?= and ?>) are also commonly used, but like ASP-style tags (<% or <%= and %>), they are less portable as they can be disabled in the PHP configuration. For this reason, the use of short tags and ASP-style tags is discouraged.[38] The purpose of these delimiters is to separate PHP code from non-PHP code, including HTML. Everything outside the delimiters is ignored by the parser and is passed through as output.[39] Delimiters are marks which are used to seperate subfields of data. ...


Variables are prefixed with a dollar symbol and a type does not need to be specified in advance. Unlike function and class names, variable names are case sensitive. Both double-quoted ("") and heredoc strings allow the ability to embed a variable's value into the string.[40] PHP treats newlines as whitespace in the manner of a free-form language (except when inside string quotes), and statements are terminated by a semicolon.[41] PHP has three types of comment syntax: /* */ serves as block comments, and // as well as # are used for inline comments.[42] $ redirects here. ... In computer science, primitive types — as distinct from composite types — are data types provided by a programming language as basic building blocks. ... heredoc (or here-document) is a way of quoting large amounts of texts in shells and programming languages. ... In computing, a newline is a special character or sequence of characters signifying the end of a line of text. ... For other uses, see white space. ... In computer programming, a free-form language is a programming language in which the positioning of characters on the page in program text is not significant. ... // Programming language statements typically have conventions for: statement separators; statement terminators; and line continuation A statement separator is used to demarcate boundaries between two separate statements. ...


To output text to the browser, either the print function or the echo function is used. Both functions are nearly identical; the major difference is that print is slower than echo because the former will return the integer value of 1 in order to behave more like a function, rather than a language construct, whereas the latter does not return a status and only returns the text for output.[43] Because print will behave more like a function, it can be used in expressions where echo cannot. It is important to understand however that both are considered language constructs and not functions, the only difference is in their behavior, as outlined above.[44] A syntactically allowable part of a program that may be formed from one or more lexical tokens in accordance with the rules of a programming language. ...


Data types

PHP stores whole numbers in a platform-dependent range. This range is typically that of 32-bit signed integers. Unsigned integers are converted to signed values in certain situations; this behavior is different from other programming languages.[45] Integer variables can be assigned using decimal (positive and negative), octal, and hexadecimal notations. Real numbers are also stored in a platform-specific range. They can be specified using floating point notation, or two forms of scientific notation.[46] PHP has a native Boolean type that is similar to the native Boolean types in Java and C++. Using the Boolean type conversion rules, non-zero values are interpreted as true and zero as false, as in Perl and C++.[46] The null data type represents a variable that has no value. The only value in the null data type is NULL.[46] Variables of the "resource" type represent references to resources from external sources. These are typically created by functions from a particular extension, and can only be processed by functions from the same extension; examples include file, image, and database resources.[46] Arrays can contain elements of any type that PHP can handle, including resources, objects, and even other arrays. Order is preserved in lists of values and in hashes with both keys and values, and the two can be intermingled.[46] PHP also supports strings, which can be used with single quotes, double quotes, or heredoc syntax.[47] In mathematics, negative numbers in any base are represented in the usual way, by prefixing them with a − sign. ... In computer science, the term integer is used to refer to any data type which can represent some subset of the mathematical integers. ... The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. ... In mathematics and computer science, hexadecimal, base-16, or simply hex, is a numeral system with a radix, or base, of 16, usually written using the symbols 0–9 and A–F, or a–f. ... Please refer to Real vs. ... A floating-point number is a digital representation for a number in a certain subset of the rational numbers, and is often used to approximate an arbitrary real number on a computer. ... Scientific notation, also known as standard form, is a notation for writing numbers that is often used by scientists and mathematicians to make it easier to write large and small numbers. ... In computer science, the Boolean datatype, sometimes called the logical datatype, is a primitive datatype having one of two values: non-zero (often 1, or -1) and zero (which are equivalent to true and false, respectively). ... Java language redirects here. ... C++ (pronounced ) is a general-purpose programming language. ... In computer science, a hash table is a data structure that speeds up searching for information by a particular aspect of that information, called a key. ... In various branches of mathematics and computer science, strings are sequences of various simple objects (symbols, tokens, characters, etc. ... heredoc (or here-document) is a way of quoting large amounts of texts in shells and programming languages. ...


Functions

PHP has hundreds of base functions and thousands more from extensions. Functions are not first-class functions and can only be referenced by their name. [48] User-defined functions can be created at any time without being prototyped.[48] Functions can be defined inside code blocks, permitting a run-time decision as to whether or not a function should be defined. Function calls must use parentheses, with the exception of zero argument class constructor functions called with the PHP new operator, where parentheses are optional. PHP supports quasi-anonymous functions through the create_function() function, although they are not true anonymous functions because anonymous functions are nameless, but functions can only be referenced by name, or indirectly through a variable $function_name();, in PHP.[48] In computer science, a programming language is said to support first-class functions if it treats functions as first-class objects. ... In computer science, dynamic dispatch is the process of mapping a message to a specific sequence of code (method) at runtime. ... In object-oriented programming, a constructor (sometimes shortened to ctor) in a class is a special block of statements called when an object is created, either when it is declared (statically constructed on the stack, possible in C++ but not in Java and other object-oriented languages) or dynamically constructed... An anonymous function is a function (or a subroutine) defined, and possibly called, without being bound to a name. ...


Objects

Basic object-oriented programming functionality was added in PHP 3.[4] Object handling was completely rewritten for PHP 5, expanding the feature set and enhancing performance.[49] In previous versions of PHP, objects were handled like primitive types.[49] The drawback of this method was that the whole object was copied when a variable was assigned or passed as a parameter to a method. In the new approach, objects are referenced by handle, and not by value. PHP 5 introduced private and protected member variables and methods, along with abstract classes and final classes as well as abstract methods and final methods. It also introduced a standard way of declaring constructors and destructors, similar to that of other object-oriented languages such as C++, and a standard exception handling model. Furthermore, PHP 5 added interfaces and allowed for multiple interfaces to be implemented. There are special interfaces that allow objects to interact with the runtime system. Objects implementing ArrayAccess can be used with array syntax and objects implementing Iterator or IteratorAggregate can be used with the foreach language construct. There is no virtual table feature in the engine, so static variables are bound with a name instead of a reference at compile time.[50] Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. ... In computer science, primitive types — as distinct from composite types — are data types provided by a programming language as basic building blocks. ... In computer science, a smart pointer is an abstract data type that simulates a pointer while providing additional features, such as automatic garbage collection or bounds checking. ... Member Variables are variables that only occur within a certain class or method of a program. ... In software engineering, an abstract type is a type in a nominative type system which is declared by the programmer, and which has the property that it contains no members which are also not members of some declared subtype. ... Used mainly in object-oriented programming, the term method refers to a piece of code that is exclusively associated either with a class (called class methods or static methods) or with an object (called instance methods). ... In object-oriented programming, a constructor (sometimes shortened to ctor) in a class is a special block of statements called when an object is created, either when it is declared (statically constructed on the stack, possible in C++ but not in Java and other object-oriented languages) or dynamically constructed... In object-oriented programming, a destructor (sometimes shortened to dtor) is a method which is automatically invoked when the object is destroyed. ... C++ (pronounced ) is a general-purpose programming language. ... Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of some condition that changes the normal flow of execution. ... In general usage, an interface is the point, area, or surface along which two substances or other qualitatively different things meet; it is also used metaphorically for the juncture between items. ... WordNet gives four main senses for the English noun object: a physical entity; something that is within the grasp of the senses; an aim, target or objective — see Object (task); a grammatical Object — either a direct object or an indirect object the focus of cognitions or feelings. ... WordNet gives four main senses for the English noun object: a physical entity; something that is within the grasp of the senses; an aim, target or objective — see Object (task); a grammatical Object — either a direct object or an indirect object the focus of cognitions or feelings. ... In computer science, an iterator is an object which allows a programmer to traverse through all the elements of a collection, regardless of its specific implementation. ... A virtual table, or vtable, is a mechanism used in Programming languages to support dynamic polymorphism, i. ... In computer programming, static variables typically have a broader scope than other variables. ...


If the developer creates a copy of an object using the reserved word clone, the Zend engine will check if a __clone() method has been defined or not. If not, it will call a default __clone() which will copy the object's properties. If a __clone() method is defined, then it will be responsible for setting the necessary properties in the created object. For convenience, the engine will supply a function that imports the properties of the source object, so that the programmer can start with a by-value replica of the source object and only override properties that need to be changed.[51]


Resources

PHP includes free and open source libraries with the core build. PHP is a fundamentally Internet-aware system with modules built in for accessing FTP servers, many database servers, embedded SQL libraries such as embedded MySQL and SQLite, LDAP servers, and others. Many functions familiar to C programmers such as those in the stdio family are available in the standard PHP build.[52] PHP has traditionally used features such as "magic_quotes_gpc" and "magic_quotes_runtime" which attempt to escape apostrophes (') and quotes (") in strings in the assumption that they will be used in databases, to prevent SQL injection attacks. This leads to confusion over which data is escaped and which is not, and to problems when data is not in fact used as input to a database and when the escaping used is not completely correct.[53] To make code portable between servers which do and do not use magic quotes, developers can preface their code with a script to reverse the effect of magic quotes when it is applied.[54] This is the present list of all officially documented libraries for the PHP programming language. ... This article is about the File Transfer Protocol standardised by the IETF. For other file transfer protocols, see File transfer protocol (disambiguation). ... MySQL (pronounced (IPA) , my S-Q-L[1]) is a multithreaded, multi-user SQL database management system (DBMS)[2] which has, according to MySQL AB, more than 10 million installations. ... SQLite is a mostly ACID-compliant relational database management system contained in a relatively small (~500kb) C programming library. ... The Lightweight Directory Access Protocol, or LDAP (IPA: ), is an application protocol for querying and modifying directory services running over TCP/IP.[1] A directory is a set of objects with similar attributes organized in a logical and hierarchical manner. ... It has been suggested that Wikipedia:WikiProject C/stdio. ... Magic quotes are a controversial feature of the PHP scripting language intended to help prevent SQL injection attacks. ... SQL injection is a technique that exploits a security vulnerability occurring in the database layer of an application. ...


PHP allows developers to write extensions in C to add functionality to the PHP language. These can then be compiled into PHP or loaded dynamically at runtime. Extensions have been written to add support for the Windows API, process management on Unix-like operating systems, multibyte strings (Unicode), cURL, and several popular compression formats. Some more unusual features include integration with Internet relay chat, dynamic generation of images and Adobe Flash content, and even speech synthesis. The PHP Extension Community Library (PECL) project is a repository for extensions to the PHP language.[55] This article is about the extension mechanism. ... In computing, C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... The Windows API, informally WinAPI, is the name given by Microsoft to the core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. ... Diagram of the relationships between several Unix-like systems A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. ... An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ... The Unicode Standard, Version 5. ... For other uses, see Curl (disambiguation). ... This article is about Internet Relay Chat. ... Adobe Flash (previously called Shockwave Flash and Macromedia Flash) is a set of multimedia technologies developed and distributed by Adobe Systems and earlier by Macromedia. ... Speech synthesis is the artificial production of human speech. ... The PHP Extension and Application Repository, or PEAR, is a framework and distribution system for PHP code components. ...


As with many scripting languages, PHP scripts are normally kept as human-readable source code, even on production web servers.[56] While this allows flexibility, releasing scripts in source form is undesirable for commercial software developers, and can raise issues with security of web servers; as an example, if a hacker acquires control of a server, database passwords may be quickly discovered, and undesirable changes to scripts may be made that remain undiscovered indefinitely.


Code optimizers improve the quality of the compiled code by reducing its size and making changes that can reduce the execution time and improve performance. The nature of the PHP compiler is such that there are often opportunities for code optimization[57], and an example of a code optimizer is the Zend Optimizer PHP extension.[58] This article is about the computing term. ... In computing, optimization is the process of modifying a system to make some aspect of it work more efficiently or use fewer resources. ... A PHP accelerator is an extension designed to boost the performance of software applications written using the PHP programming language. ...


PHP accelerators can offer significant performance gains by caching the compiled form of a PHP script in shared memory to avoid the overhead of parsing and compiling the code every time the script runs. A PHP accelerator is an extension designed to boost the performance of software applications written using the PHP programming language. ... This article is about the computer term. ... // Diagram of a typical Shared memory system. ... An example of parsing a mathematical expression. ... A compiler is a computer program that translates a computer program written in one computer language (called the source language) into an equivalent program written in another computer language (called the output or the target language). ...


Certification

Zend provides a certification program for programmers to beco