Top 3 Products & Services
| 1. 2. 3. |
Essential Products & Services
Dated: Aug. 13, 2004
Related Categories
PHP Programming
|
PHP solves this problem by becoming a part of the Web server, essentially extending the functionality of the server itself, so that the server can do the processing without having to spawn extra processes. It's not alone in doing this, but unlike most other scripting languages for Web page development PHP also offers excellent connectivity to most of the databases in use today. Perhaps the greatest advantage of PHP, when compared to other scripting languages such as ASP or ColdFusion, is that it is open source and cross-platform. PHP's natural home is on Linux servers running Apache server software, but it runs equally well on any other Unix or Windows platform, and can be used with other Web servers.
PHP started life as a Perl program written by Rasmus Lerdorf to track visitors to his online rιsumι. It was then rewritten in Cand was extended to include support for database access. From these simple beginnings the open source community has expanded and developed PHP into a powerful server-side scripting language.
Which Version?
An earlier version of PHP that was released publicly was called PHP/FI 2.0, and you may still find this on some ISPs' servers and Linux distributions, but it wasn't until PHP3 that the language really came into its own. PHP3 has been around since June 1998 and is still the most widely used release. However, we are currently in a transition period, as PHP4 came out of beta in May this year. PHP4 uses a new engine called Zend and offers greatly improved performance and increased functionality, so we can expect developers and ISPs to start migrating to that release soon. Code written in PHP3 is compatible with the PHP4 engine with a few minor exceptions, and in this article we'll consider both releases, highlighting any differences as we go.In July 2000 Netcraft's ongoing survey of Web servers reported that 3,121,918 domains at 598,213 IP addresses had PHP available on their Web server. Of course, such wide availability doesn't mean it has actually been used on all those servers, but organizations such as Mitsubishi, RedHat, livebid.amazon.com, Der Spiegel, MP3-Lycos, Ericsson, Sprint Canada, xoom.com and NASA are all actively using PHP today.
Writing PHP
What sets PHP apart from its origins in Perl is the ability to embed PHP code inside HTML, allowing you to mix HTML and PHP in one source file rather than having to crank out the HTML from within Perl. For example, a simple PHP script to show today's date is shown in Figure 1. If you're familiar with HTML then the top and bottom of this code will look very familiar - it's just standard HTML. The PHP code is embedded within the HTML by bracketing it with "".The code consists of one line, a call to the PHP function "date", which returns a date in the format we've specified as a string, which is then output as part of the HTML using the "echo" function. This ability to embed PHP inside HTML means that you can continue to write your Web pages as you do now, and then embed PHP into them to provide the dynamic elements.
This is perhaps a good point at which to highlight what is meant by a server-side language. The PHP code is executed on the server, not the browser. The source of the page the browser receives back from the server is shown in Figure 2. You can see that the PHP has been processed by the server, so no special software is needed on the client to view pages with PHP elements - the intelligence lies at the server end. This means you can use PHP with any browser - even simple, text-only ones like Lynx and w3m, or browsers in PDAs or set-top boxes. So long as the browser understands HTML it can display pages written in PHP.
PHP Syntax
In view of where it started, it's not surprising that PHP shares syntactical ideas with Perl and C, and if you've programmed in either of these or you've done any UNIX shell programming, then PHP should be easy to pick up. PHP uses loosely typed variables which don't need to be declared before first use, and evaluates them according to context, so you can add a numeric string to a numeric to give a numeric, and then manipulate the result as a string. The PHP online manual gives a nice example of how a variable's type can change due to context. This is shown in Figure 3.
|
PHP has a full range of comparative, logical and bitwise operators, auto increment and decrement, and assignment operators. It has all the control structures you might expect from a procedural language, including if/else, switch/case, for, while (test before) and do (test after). You can write your own functions or use the extensive range of functions provided as standard. Arguments can be parsed by value or reference, and functions can return a value or multiple values if you use an array as the return variable. Variables are local to a function unless declared global.
PHP also supports include files, both static and dynamic, allowing common code such as custom function libraries and HTML fragments to be embedded in your code. This is all very good news from the developer's viewpoint, allowing code re-use wherever possible. It also means you can separate the PHP code from the HTML if you employ different people for Web design and Web programming. PHP3 includes support for object oriented programming, but there is a problem with polymorphism: once a parent's function is overridden by a child it can no longer be used. This is resolved in PHP4, which provides expanded functionality and new features for object oriented programming, and for building classes and objects.
Forms
|
|
Functions
The real strength of PHP lies in the extensive range of built-in functions. Those available include functions to: Access a wide variety of databases (see below).
Interrogate the Web server on which the code is running.
Manipulate arrays.
Access a full range of mathematical functions.
Perform arbitrary precision mathematics (log, trig etc).
Get the date and time and display them in a variety of formats.
Browse directory trees.
Execute external programs on the server and receive the results back.
Perform a wide variety of operations on the server file system.
Set cookies.
Send mail.
Perform network functions such as "Get the Internet host name corresponding to a given IP address".
Use Perl-compatible or POSIX-extended regular expressions.
Use System V semaphores and shared memory o Manipulate strings.
Test a variable's current type.
Use WDDX to easily exchange data with other applications over the Web.
Gzip and gunzip files.
Creating powerful Web applications inevitably means storing and manipulating a lot of data, so the ability to access databases is vital. PHP includes support, via function calls, for a wide variety of popular databases, including Adabase D, dBase, UNIX dbm, filePro, Interbase, Informix, Microsoft SQL Server, mSQL, MySQL, Oracle, Sybase, PostgreSQL, and Solid. In addition, any database which supports ODBC, such as Microsoft Access, can be used. If you're trying to create an application which isn't database-specific then there are a number of open source abstraction layers available, including Metabase and phpDB, which will let you do this painlessly.
Optional Extras
In addition to the standard functions and the database access functions, PHP has a number of additional functions which only work if you have the appropriate library loaded on your server.
|
|
James Clark's expat toolkit lets you parse XML documents, create XML parsers and then define handlers for different XML events. Other libraries allow you to encrypt and decrypt data in a wide variety of block algorithms, use hash algorithms such as MD5, SHA1 and GOST, access mail on an IMAP mail server, do spell checks on words in any string, access LDAP servers, and gain access to SNMP (available as standard under Windows NT).
New Features In PHP4
PHP4 is significantly faster than PHP3. This improvement in performance is particularly noticeable with larger and more complex scripts, and is the result of the PHP engine having been totally rewritten by Andi Gutmans and Zeev Suraski. The new Zend engine uses a much more efficient "compile-then-execute" method, instead of the "execute-while-parsing" model used by PHP3. The authors claim the resulting engine is up to fifty times faster than the PHP3 engine.New features in PHP4 include:
Extended API module.
Generalized build process under Unix.
Generic Web server interface that also supports multi-threaded Web servers.
Improved syntax highlighter.
Native http session support.
Output buffering support.
A more powerful configuration system.
Reference counting.
Ftp support.
PHP4 also provides COM/DCOM support (on Windows only), allowing you to seamlessly access COM objects and instantiate them. PHP4 also has a number of additional optional functions which, with the right libraries, extend PHP to allow you to process credit cards and other financial transactions using VeriSign Payment Services, and to handle CyberCash payments.
Future Developments
|
The Zend Cache saves any PHP script it has compiled in a cache, so that subsequent hits on the same script don't need compiling before running. This reduces server disk accesses and overall execution time.
The Zend Compiler allows you to compile your PHP scripts before distributing them. By saving the code in a closed Zend Intermediate Code format, the compiler allows you to protect source code from copyright infringement.
Like what you read? Not only do you get the free reports, you also get lots more freebies in every twice monthly issue plus Gizmo's pick of the latest shareware and hot tech web sites. Click here to see a sample issue. Subscribing is easy - Just enter your email address and click the button. After subscribing, you'll receive an email with details how to access the free utilities report. You can un-subscribe at any time. |
Now that you've gotten free know-how on this topic, try to grow your skills even faster with online video training. Then finally, put these skills to the test and make a name for yourself by offering these skills to others by becoming a freelancer. There are literally 2000+ new projects that are posted every single freakin' day, no lie!
![]() Previous Article | ![]() Next Article |



