Report CSE-001f General presentation

Submitted By-Prasanjit Dey Roll No-RB1803B31 Registration No-10804377

1

ACKNOWLEDGMENT I. Shamli. I thank the subject teacher Ms. Prasanjit Dey a student of Lovely Professional University thank all the teachers and the management for providing me such a valuable opportunity to show my talent by assigning me the above term paper. 2 . for the immense help provided by her in the course of developing the term paper. Also I would like to appreciate the help given to me by my class mates. The concepts and terms she explained to me very of much help in course of completion of the term paper.

CONTENTS 1) 2) 3) 4) 5) 6) 7) 8) 9) Introduction History Usage Security Syntax Data Types Objects Speed Optimization Compilers 3 .

For this purpose. PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module.INTRODUCTION PHP: Hypertext Preprocessor (a recursive acronym. which generates the web page document. PHP code is processed by an interpreter application in command-line mode performing desired operating system operations and producing program output on its standard output channel. originally personal home page) is a general-purpose scripting language that was originally designed for web development to produce dynamic web pages. As a general-purpose programming language. It may also function as a graphical application. PHP is available as a processor for most modern web servers and as a standalone interpreter on most operating systems and computing platforms. 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 4 . PHP was originally created by Rasmus Lerdorf in 1995 and has been in continuous development ever since.

including tasks such as displaying his résumé and recording how much traffic his page was receiving. extending them to add the ability to work with web forms and to communicate with databases and called this implementation 'Personal Home Page/Forms Interpreter' or PHP/FI. Lerdorf released PHP/FI as 'Personal Home Page Tools (PHP Tools) version 1. This release already had the basic functionality that PHP has today. 1995. form handling. This included Perl-like variables. HISTORY PHP originally stood for personal home page. PHP/FI could be used to build simple. dynamic web applications. He rewrote these scripts as C programming language Common Gateway Interface (CGI) binaries. Its development began in 1994 when the Danish/Greenlandic programmer Rasmus Lerdorf initially created a set of Perl scripts he called 'Personal Home Page Tools' to maintain his personal homepage. and the 5 . to accelerate bug location and improve the code. PHP is free software released under the PHP License.specification.0' publicly on June 8.

which included plans for full Unicode support. Suraski and Gutmans then started a new rewrite of PHP's core. Late static binding had been missing from PHP and was added in version 5.0. They also founded Zend Technologies in Ramat Gan. Unicode support took developers much longer to implement than originally thought. and the 6 . PHP 4. with features still under development moved to trunk. and safe mode. and numerous performance [10] enhancements. although less consistent A development team began to form and. PHP 5 included new features such as improved support for object-oriented programming. powered by the Zend Engine 1.3. 2004.4. was released. Afterwards. On July 13. On May 22. public testing of PHP 3 began. In 2008 PHP 5 became the only stable version under development. the PHP Data Objects (PDO) extension (which defines a lightweight and consistent interface for accessing databases). However. rewrote the parser in 1997 and formed the base of PHP 3. powered by the new Zend Engine II.[8][15] The reason for the removals was that register_globals had given way to security holes. and the official launch came in June 1998.ability to embed HTML. Zeev Suraski and Andi Gutmans. Israel. The syntax was similar to Perl but was more limited and simpler. and the decision was made in March 2010 to move the project to a branch. after months o[f work and beta testing. This version was originally planned to be released as PHP 6 as a result of its significant changes. producing the Zend Engine in 1999. 2000. magic quotes. As of August 2008 this branch is up to version 4.9. Changes in the new code include the removal of register_globals. PHP 4 is no longer under development nor will any security updates be released. PHP 5 was released. officially released PHP/FI 2 in November 1997. changing the language's name to the recursive initialism PHP: Hypertext Preprocessor. two Israeli developers at the Technion IIT.[11][12] A new major version has been under development alongside PHP 5 for several years.

Unicode support is under development for a future version of PHP and will allow strings as well as class. PHP can be deployed on most web servers. magic quotes may be replaced with the addslashes() function. It can also be used for command-line scripting and client-side GUI applications. to escape characters. but on Microsoft Windows the only official distribution is a 32-bit implementation. It is available 7 .use of magic quotes had an unpredictable nature. Any PHP code in a requested file is executed by the PHP runtime. experimental 64-bit versions are available for MS Windows. PHP currently does not have native support for Unicode or multibyte strings. and function names to contain non-ASCII characters. or more appropriately an escape mechanism specific to the database vendor itself like mysql_real_escape_string() for MySQL. many operating systems and platforms. USAGE PHP is a general-purpose scripting language that is especially suited to server-side web development where PHP generally runs on a web server. method. Many high-profile open-source projects ceased to support PHP 4 in new code as of February 5. Instead. Functions that will be removed in future versions and have been deprecated in PHP 5. 2008. and can be used with many relational database management systems (RDBMS). because of the GoPHP5 initiative. and was best avoided. As of PHP 5. usually to create dynamic web page content. requiring Windows 32-bit compatibility mode while using Internet Information Services (IIS) on a 64-bit Windows platform.0.3 will produce a warning if used.3.provided by a consortium of PHP developers promoting the transition from PHP 4 to PHP 5. PHP interpreters are available on both 32-bit and 64-bit operating systems.

such as Microsoft's Asp.free of charge. giving improved performance over its interpreter predecessor. All websites created using these tools are written in PHP. Facebook. eZ Publish. PHP primarily acts as a filter. CodeIgniter. and the PHP Group provides the complete source code for users to build. Some of these include CakePHP. Drupal and Moodle. WordPress. Joomla. PHP now focuses mainly on server-side scripting. PHP has also attracted the development of many frameworks that provide building blocks and a design structure to promote rapid application development (RAD). and Zend Framework. although the P may also refer to Python or Perl or some combination of the three. the PHP parser compiles input to produce bytecode for processing by the Zend Engine. and it is similar to other server-side scripting languages that provide dynamic content from a web server to a client. WAMP packages (Windows/ Apache/ MySQL / PHP) and MAMP packages (Macintosh / Apache / MySQL / PHP) are also available. Sun Microsystems' JavaServer Pages. including the user-facing portion of Wikipedia. customize and extend for their own use. Web content management systems written in PHP include MediaWiki. PHP is used as the server-side programming language on 75% of all web server. Originally designed to create dynamic web pages. most commonly the output will be HTML. As of April 2007. offering features similar to other web application frameworks. 8 . over 20 million Internet domains had web services hosted on servers with PHP installed and mod_php was recorded as the most popular Apache HTTP Server module. Symfony. Since PHP 4. and Digg. taking input from a file or stream containing text and/or PHP instructions and outputs another stream of data. PHP is commonly used as the P in this bundle alongside Linux. The LAMP architecture has become popular in the web industry as a way of deploying web applications. Apache and MySQL.net. and mod_perl.

header injection. SYNTAX <!DOCTYPE html> 9 . 35% in 2008. about 1% of the total). Hosting PHP applications on a server requires careful and constant attention to deal with these security risks. which itself can be installed on the vulnerable servers. some languages include taint checking to detect automatically the lack of input validation which induces many issues. Denial of Service (DoS). PHPIDS adds security to any PHP application to defend against intrusions. Most of these PHP-related vulnerabilities can be exploited remotely: they allow attackers to steal or destroy data from data sources linked to the webserver (such as an SQL database). These vulnerabilities are caused mostly by not following best practice programming rules: technical security flaws of the language itself or of its core libraries are not frequent (23 in 2008.SECURITY The National Vulnerability Database maintains a list of vulnerabilities found in computer software. 28% in 2005. There are advanced protection patches such as Suhosin and HardeningPatch. 43% in 2006. 36% in 2007. The overall proportion of PHP-related vulnerabilities on the database amounted to: 20% in 2004. but its inclusion in a release has been rejected several times in the past. send spam or contribute to DoS attacks using malware. PHPIDS detects Cross-site scripting (XSS). Local File Inclusion. especially designed for web hosting environments. Directory traversal. SQL injection. and 30% in 2009. Remote File Execution. Recognizing that programmers cannot be trusted. Such a feature is being developed for PHP.

but a language construct. parameters cannot be enclosed in parentheses. variable names are case sensitive. as are the shortened forms <? or <? = (which is used to echo back a string or variable) and ?> as well as ASP-style short forms <% or <%= and %>. works as well. The first form of delimiters. In some cases. such as when multiple parameters are passed to echo. although echo isn't a function. Both double-quoted ("") and heredoc strings allow the ability to embed a variable's value into 10 . in XHTML and other XML documents. including HTML. While short delimiters are used. The purpose of all these delimiters is to separate PHP code from non-PHP code.[54] This means that the resulting mixture of PHP code and other markup in the server-side file is itself well-formed XML. /* echo("Hello World"). and so they are discouraged. Unlike function and class names. creates correctly formed XML 'processing instructions'. Anything outside its delimiters is not processed by PHP (although non-PHP text is still subject to control structures described within PHP code). Variables are prefixed with a dollar symbol and a type does not need to be specified in advance. The most common delimiters are <?php to open and ? > to close PHP sections.<html> <head> <meta charset="utf-8" /> <title>PHP Test</title> </head> <body> <?php echo 'Hello World'. <?php and ?>. <script language="php"> and </script> delimiters are also available. they make script files less portable as support for them can be disabled in the PHP configuration. */ ?> </body> </html> PHP code embedded within HTML code The PHP interpreter only executes PHP code within its delimiters.

g. The echo statement is one of several facilities PHP provides to output text (e. DATA TYPES PHP stores whole numbers in a platform-dependent range. objects. PHP has a native Boolean type that is similar to the native Boolean types in Java and C++. PHP is similar to most high level languages that follow the C style syntax.the string. and statements are terminated by a semicolon. or two forms of scientific notation. for and while loops. and can only be processed by functions from the same extension. [59] Arrays can contain elements of any type that PHP can handle. Unsigned integers are converted to signed values in certain situations. Variables of the "resource" type represent references to resources from external sources. PHP treats newlines as whitespace in the manner of a free-form language (except when inside string quotes). image. this behavior is different from other programming languages. examples include file. Integer variables can be assigned using decimal (positive and negative). either a 64-bit or 32-bit signed integer equivalent to the C-language long type. octal. PHP has three types of comment syntax: /* */ marks block and inline comments. In terms of keywords and language syntax. // as well as # are used for one-line comments. The only value in the null data type is NULL. to a web browser). and function returns are similar in syntax to languages such as C. including resources. Java and Perl. C++. and database resources. Using the Boolean type conversion rules. Floating point numbers are also stored in a platformspecific range. Order is preserved in lists of values and in hashes with both keys and 11 . as in Perl and C+ +. These are typically created by functions from a particular extension. and even other arrays. They can be specified using floating point notation. The null data type represents a variable that has no value. if conditions. and hexadecimal notations. non-zero values are interpreted as true and zero as false.

the built-in library has a wide variety of naming conventions and inconsistencies.[3] Object handling was completely rewritten for PHP 5. which can be used with single quotes. These functions are well documented on the PHP site. In previous versions of PHP. like this: function myFunction() { return 'Rasmus'. although it does support multiprocess programming on POSIX systems. PHP currently has no functions for thread programming. similar to that of other object12 .values. It also introduced a standard way of declaring constructors and destructors. objects were handled like value types. and not by value. along with abstract classes and final classes as well as abstract methods and final methods. expanding the feature set and enhancing performance. double quotes. Functions PHP has hundreds of base functions and thousands more via extensions. however. You can create your own functions. } echo 'My name is ' . nowdoc or heredoc syntax. '!'. The Standard PHP Library (SPL) attempts to solve standard problems and implements efficient data access interfaces and classes.[59] PHP also supports strings. 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. PHP 5 introduced private and protected member variables and methods. myFunction() . and the two can be intermingled. In the new approach. objects are referenced by handle. OBJECTS Basic object-oriented programming functionality was added in PHP 3 and improved in PHP 4.

[73] An example of a code optimizer is the eAccelerator PHP extension. it will call a default __clone() which will copy the object's properties. SPEED OPTIMIZATION PHP source code is compiled on-the-fly to an internal format that can be executed by the PHP engine.[66] If the developer creates a copy of an object using the reserved word clone. Objects implementing ArrayAccess can be used with array syntax and objects implementing Iterator or IteratorAggregate can be used with the foreach language construct.[74] 13 . Furthermore. If not. PHP scripts can also be deployed in executable format using a PHP compiler. For convenience. the engine will supply a function that imports the properties of the source object. PHP 5 added interfaces and allowed for multiple interfaces to be implemented. merging redundant instructs and making other changes that can reduce the execution time. then it will be responsible for setting the necessary properties in the created object. There is no virtual table feature in the engine. Code optimizers aim to enhance the performance of the compiled code by reducing its size. and a standard exception handling model. With PHP. so that the programmer can start with a by-value replica of the source object and only override properties that need to be changed. so static variables are bound with a name instead of a reference at compile time. There are special interfaces that allow objects to interact with the runtime system.oriented languages such as C++. the Zend engine will check if a __clone() method has been defined or not. If a __clone() method is defined. In order to speed up execution time and not have to compile the PHP source code every time the webpage is accessed. there are often opportunities for code optimization.

which the developer can compile to Java bytecode Advantages of compilation include not only better execution speed.[75] Opcode caching and code optimization can be combined for best efficiency. transforms the PHP Script into C++.developed at Facebook and now available as open source. but also obfuscation.a rewrite of Roadsend PHP (rphp). static analysis.compiles PHP to Java bytecode HipHop . based on LLVM and a new C++ runtime Phalanger .achieves native compilation by compiling to bigloo scheme. using the Zend runtime for maximum compatibility Roadsend . Opcode caches work by caching the compiled form of a PHP script (opcodes) in shared memory to avoid the overhead of parsing and compiling the code every time the script runs. then compiles it. then to machine code Raven . An opcode cache. which in turn is compiled to C.Another approach for reducing compilation overhead for PHP servers is using an opcode cache. which decouple the PHP language from the interpreter: • • • • • • • phc .converts PHP to human-readable Scala source code. and improved interoperability with code written in other languages. will be built into an upcoming release of PHP.compiles source code written in the PHP scripting language into CIL byte-code Caucho Resin/Quercus . as the modifications do not depend on each other (they happen in distinct stages of the compilation). APC. COMPILERS The PHP language was originally implemented using a PHP interpreter. 14 . Several compilers now exist.a C++ based compiler for PHP. php-to-scala .

Many functions familiar to C programmers such as those in the stdio family are available in the standard PHP build. and several popular compression formats. The PHP Extension Community Library (PECL) project is a repository for extensions to the PHP language. Extensions have been written to add support for the Windows API. Some more unusual features include integration with Internet Relay Chat. These can then be compiled into PHP or loaded dynamically at runtime.[78] Zend provides a certification exam for programmers to become certified PHP developers. PHP is a fundamentally Internet-aware system with modules built in for accessing FTP servers.RESOURCES PHP includes free and open source libraries with the core build. LDAP servers.[77] PHP allows developers to write extensions in C to add functionality to the PHP language. and others. multibyte strings (Unicode). embedded SQL libraries such as embedded PostgreSQL. dynamic generation of images and Adobe Flash content. 15 . process management on Unix-like operating systems. many database servers. and even speech synthesis. MySQL and SQLite. cURL.

Sign up to vote on this title
UsefulNot useful