|
|

PHPPHP is a popular open-source programming language used primarily for developing server-side scripting application software and dynamic web content, and more recently, other software. The name is a recursive acronym for "PHP: hypertext preprocessor". This is actually a retronym; see #History. Famous examples of PHP applications include phpBB and MediaWiki, the software behind Wikipedia. The PHP model can be seen as an alternative to Microsoft's ASP.NET/C_sharp/Visual Basic .NET system, Macromedia's Macromedia_ColdFusion system, Sun Microsystems' JavaServer Pages/Java programming language system, and to the Common Gateway Interface/Perl system. ==Overview== PHP's ease of use and similarity with the most common structured programming languages—most notably C programming language and Perl (and from version 5, Java)—allows most experienced programmers to start developing complex applications with a minimal learning curve. It also enables experienced software developers to get involved with dynamic web content applications without having to learn a whole new set of functions and practices. One of the more attractive parts of PHP is that it is more than just a scripting programming language. Due to its modular design, PHP is also used to develop GUI applications (using PHP-GTK), and can be used from the command line just like Perl or Python programming language. PHP allows interaction with a large number of relational database management systems, such as MySQL, Oracle database, IBM DB2, Microsoft SQL Server, PostgreSQL and SQLite while maintaining a simple and straightforward syntax. PHP runs on most major operating systems, including Unix, Linux, Microsoft Windows, and Mac OS X, and can interact with many major web servers. The [http://www.php.net/ official PHP website] contains [http://www.php.net/manual/ extensive documentation]. The Linux, Apache, MySQL, PHP (LAMP) architecture has become popular in the Web industry as a way of deploying inexpensive, reliable, scalable, secure web applications. (The 'P' in LAMP can also stand for Perl or Python.) PHP is the result of the collective efforts of many contributors. It is licensed under a BSD License, the PHP license. PHP, from version 4, has been powered by the Zend Technologies engine. ==History== PHP was originally designed as a small set of Perl scripts, followed by a rewritten set of CGI binaries written in C by the Denmark-Canada programmer Rasmus Lerdorf in 1994 to display his résumé and collect some data, such as how many hits it was generating. Others first used "Personal Home Page Tools" in 1995, when Lerdorf had combined it with his own Form Interpreter to create PHP/FI. Zeev Suraski and Andi Gutmans, two Israeli developers of the Technion, rewrote the parser in 1997 and formed the base of PHP 3. They also changed the name to its current recursive form. After months in development stage, the development team officially released PHP/FI 2 in November 1997. Public testing of PHP 3 began immediately 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 ([http://www.zend.com/zend/zend-engine-summary.php a page at www.zend.com] states that PHP 3 was powered by Zend Engine 0.5). They also founded Zend Technologies in Ramat Gan, Israel which has since overseen the PHP advances. In May 2000, PHP 4, powered by the Zend Engine 1.0, was released. On July 13, 2004, PHP 5 was released, powered by Zend Engine II (formerly known as Zend Engine 2). ==Popularity== PHP is currently one of the most popularity server-side scripting systems on the Web. It has been widely adopted since the release of version 4. One major part of PHP which has helped it become popular is that it is a very loose language; in particular, it is dynamic typing. That is, the rules aren't as strict with variables—they don't have to be declared and they can hold any type of object. Further, unlike many other languages (like C plus plus and Java), arrays are able to hold objects of varying types, including other arrays. According to Netcraft's April 2002 survey, PHP is now the most deployed server-side scripting language, running on around 9 million of the 37 million domains in their survey. This is confirmed by PHP's own figures, which show PHP usage (measured on a per-domain basis) growing at around 5% per month. In May 2003, almost 13 million domains were using PHP, based on the same source.[http://www.php.net/usage.php] Due to PHP's popularity, a new breed of programmer has emerged—one who is familiar only with PHP, which in turn forced open the door toward a command line interface for PHP, along with support for GUI library such as GTK and text mode libraries like Ncurses and Newt. This is a major step for PHP, because it represents its adoption as a genuine programming language (that is, running autonomously on a stand-alone machine, as opposed to its original purpose of serving web pages to client machines from a server). Many PHP programmers have reported having had trouble trying to learn other languages in the past and ultimately giving up after each attempt until attempting to learn PHP. The ease of programming in PHP has made it so these programmers are able to learn the basics of programming and are then able to continue on to other languages such as C/C++ or Perl/Python/Java and then finding themselves back programming in PHP for its speed of development in comparison to other languages. ==Code example== Here is a Hello World code example (See ''[http://php.net/manual/en/language.basic-syntax.php Basic syntax]'' in the PHP manual): Here is an example that prints out the lyrics for the song ''99 Bottles of Beer'': Notes: *PHP treats new lines as white space, in the manner of a free-form language (except when inside string quotes). A line of code is terminated only by a semicolon (;) except in a few special cases. [http://php.net/manual/en/language.basic-syntax.instruction-separation.php] *A period (.) concatenates strings together. [http://php.net/manual/en/language.types.string.php] *Variables always have names that start with a dollar sign ($), and are evaluated inside double quotation marks ("), but not inside single quotation marks ('). Functions, such as plural(), and other expressions are not evaluated inside double quotes but can be added to strings using periods for concatenation. Example: $var = 'string' . function() . 'rest of string';
[http://php.net/manual/en/language.variables.php]
*Although PHP allows both # and // for "same line" comments, it is generally preferred to use the C-style // and not the Perl-style #. [http://us2.php.net/manual/en/language.basic-syntax.comments.php]
*For output, this program uses echo. print and printf may also be used for this purpose.
==Libraries==
PHP includes a large number of free and open-source libraries with the core build. PHP is a fundamentally Internet-aware system with modules built in for accessing File transfer protocol servers, many database servers, embedded SQL libraries like embedded MySQL and SQLite, Lightweight Directory Access Protocol servers, and others. Many functions familiar to C programming language programmers such as the printf family are available in the standard PHP build.
PHP extension (computing)s exist which, among other features, add support for the Windows API, process management on UNIX-like operating systems, cURL, and the ZIP (file format)/gzip/bzip2/RAR/LZF compression formats. Some of the more unusual features are on-the-fly Macromedia Flash generation, integration with Internet relay chat, and generation of dynamic images (where the content of the image can be changed). Some additional extensions are available via the PHP Extension Community Library (PECL).
This is the present list of all officially documented libraries:
{| width="75%" |
|-
| width="33%" valign="top" |
*Apache HTTP Server
*BCMath
*Bzip2
*Calendars
*CCVS
*COM
*ClibPDF
*cURL
*Cybercash
*dBase
*DBM
*dbx
*DBpp
*LDAP
*DNS
*Document Object Model
*Microsoft .NET
*FrontBase
*filePro
*FriBiDi
*File transfer protocol
*Gettext
*GD Graphics Library
*GNU Multi-Precision Library
*Hyperwave
*iconv
*Internet Message Access Protocol, Post Office Protocol and NNTP
*Informix
||
| width="33%" valign="top" |
*Ingres II
*InterBase
*Internet Relay Chat
*Javax
*Lotus Notes
*mailparse
*MCAL
*Mcrypt
*MCVE
*Mhash
*MIME type Functions
*MS-SQL
*Ming (PHP Module)
*mnoGoSearch
*mSQL
*MySQL
*Mowhawk
*muscat
*Ncurses
*ODBC
*Oracle database
*OpenSSL
*Ovrimos SQL
*Portable Document Format
*PayFlow Pro
*PHP Data Objects
*POSIX
*PostgreSQL
||
| width="34%" valign="top" |
*Computer printer
*Pspell
*GNU Readline
*GNU Recode
*Regular expressions
*QT-Dom
*Semaphore (programming)s
*SESAM
*Session (computer science) Handling
*Shared memory
*Simple Mail Transfer Protocol
*SNMP
*Sockets
*SimpleXML
*SQLite
*Streams
*Sybase
*Token
*vpopmail
*WDDX
*Windows API
*XML (Expat)
*XML-RPC
*XSLT
*YAZ
*Yellow Pages / NIS
*ZIP file format
*Zlib
|}
(Source: [http://www.php.net/manual/en/ PHP.net manual])
==Object-oriented programming==
Up until version 3, PHP had no Object-oriented programming features. In version 3 basic object functionality was added. The same semantics were implemented in PHP 4 as well as pass-by-reference and return-by-reference for objects but the implementation still lacked the powerful and useful features of other object-oriented languages like C++ and Java.
In version 5, which was released in July 2004, PHP's object-oriented functionality has been very much enhanced and is more robust and complete. Here is a summary of some of the changes in PHP 5 (powered by [http://www.zend.com/php5/ Zend Engine II]):
; ''New Object Model'' : PHP's handling of objects has been completely rewritten, allowing for better performance and more features. In previous versions of PHP, objects were handled like primitive types (for instance integers and strings). The drawback of this method was that semantically the whole object was copied when a variable was assigned, or passed as a parameter to a method. In the new approach, objects are Reference (computer science) by handle, and not by value (one can think of a handle as an object's identifier).
; ''Private and Protected Members'' : PHP 5 introduces private and protected member variables, they allow you to define the Inheritance (object-oriented programming)#Constraints of inheritance-based design of class properties.
; ''Private and Protected Methods'' : Private and protected methods are also introduced.
; ''Abstract Classes and Methods'' : PHP 5 also introduces abstract classes and methods. An abstract method only declares the method's signature and does not provide an implementation. A class that contains abstract methods needs to be declared abstract.
; ''Interfaces'' : A class may implement an arbitrary list of interface (computer science).
; ''Object Cloning'' : If the developer asks to create a copy of an object by 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 all of the object's properties. If a __clone() method is defined, then it will be responsible to set the necessary properties in the created object. For convenience, the engine will supply a function that imports all of the properties from the source object, so that they can start with a by-value wiktionary:replica of the source object, and only override properties that need to be changed.
; ''Unified Constructors'' : PHP 5 introduces a standard way of declaring constructor methods by calling them by the name __construct().
; ''Destructors'' : PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as C plus plus: When the last reference to an object is destroyed, the object's destructor (a class method named __destruct() that receives no parameters) is called before the object is freed from memory.
; ''Exceptions'' : PHP 4 had no exception handling. PHP 5 introduces an exception model similar to that of other programming languages.
More additions and examples of the additions mentioned above are available in the [http://php.net/manual/en/language.oop5.php ''Classes and Objects'' chapter] of the PHP 5 manual.
It is should be noted that the static method and class variable features in Zend Engine 2 do not work the way some expect. There is no virtual table feature in the Engine, so the static variables are bound with a name at compile time instead of with a reference. This can lead to unexpected behavior, if you do not understand this.
Here is an example of creating an Object (computer science):
For more on PHP's OOP abilities, see: *[http://us3.php.net/manual/en/language.oop.php PHP.net OOP Section] *[http://www.spoono.com/php/tutorials/tutorial.php?id=27 Spoono OOP Tutorial] *[http://www.phpfreaks.com/tutorials/48/0.php PHP Freaks OOP Tutorial] *[http://www.gurusnetwork.com/tutorial/oop_php/ Guru's Network OOP Tutorial] ==Criticisms== Criticisms of PHP include those general criticisms ascribed to other scripting programming languages and Dynamic typing. In addition, specific criticisms of PHP include: ===Syntax=== *PHP does not enforce the declaration of variables, and variables that have not been initialized can have operations (such as concatenation) performed on them; however, an operation on an uninitialized variable does raise an E_NOTICE level error, errors that are hidden by default. This leads to security holes with register_globals (not on by default), as mentioned below. See also [http://php.net/manual/en/function.error-reporting.php error_reporting()]. *Within sections of the built-in function selection there is little or no consistency regarding argument order (examples: order of subject array and other data for array handling functions, order of needle and haystack in various search functions). ===Built-in functions=== *Built-in function names have no standard form, with some employing underscores (strip_tags) while others do not (stripslashes). Although all new functions do follow a naming standard, old names remain for backward compatibility reasons. *Some functions have inconsistent output. Statements like ''This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "".'' can be found in [http://php.net/manual/en/function.strpos.php the documentation]. This is related to PHP's dynamic typing. A workaround is using strict (===) type checking as opposed to loose (==). See also the manual on [http://php.net/manual/en/language.types.type-juggling.php type juggling]. *In some areas the selection of built-in functions is notably incomplete (supplying intersection and union functions, but no full difference function, for example). *The number of built-in functions is said to be too numerous, with many functions performing the same actions, but with just slightly different data, results, etc. This is said to make it difficult to program in the language without the frequent consultation of a reference work. *There are over 3,000 functions, sharing the same global namespace. Most functions are not enabled by default, but become available when PHP is linked against the required libraries. *Some default settings and features are said to be confusing and the cause of frequent errors. *There is a "magic quotes" feature that inserts backslashes into user input strings. The feature was introduced to reduce code written by beginners from being dangerous (such as in SQL injection attacks), but some criticize it as a frequent cause of improperly displayed text or encouraging beginners to write PHP which is vulnerable to SQL_injection when used on a system with it turned off. (Always be sure to check for "magic-quotes": get_magic_quotes_gpc(); and to unset "magic-quotes-runtime": set_magic_quotes_runtime(0);.) Magic Quotes are turned off by default in PHP 5. For more information, see the security section in the [http://php.net/manual/en/security.magicquotes.php ''Magic Quotes'' chapter] of the PHP manual.
===Security===
*If [http://www.php.net/register_globals register_globals] is enabled in PHP's configuration file, users could cause harm by manipulating poorly written code. As of version [http://php.net/release_4_2_0.php 4.2.0] register_globals defaults to off. For more information, see the security section in the [http://php.net/manual/en/security.globals.php ''Using Register Globals'' chapter] of the PHP manual.
*Other languages, such as ASP.NET, include functionality to detect and clean harmful cross-site scripting or other malicious code automatically, whereas PHP does not. See also [http://php.net/manual/en/function.strip-tags.php strip_tags()].
*In the majority of cases, Linux and Unix webservers with PHP installed (using mod_php) typically run PHP scripts as "nobody", which can make file security in a shared hosting environment difficult.
*PHP has no [http://gunther.web66.com/FAQS/taintmode.html variable tainting] mechanism (which is very useful for a language designed to accept and process untrusted input.)
===Miscellaneous===
*Error messages are said to be confusing. This is a common criticism levelled at many programming languages. The error messages generated by PHP are easier to comprehend than those of Perl. [http://www.javascriptkit.com/howto/phpcgi.shtml] For further information, see the manual section on [http://php.net/manual/en/tokens.php PHP parser tokens].
*The many settings in the PHP interpreter's configuration file (''php.ini'') mean that code that works with one installation of PHP might not work with another. For example, if code is written to work with register_globals turned on, it won't work on another system that has register_globals turned off. This makes it necessary to write code that is cross-platform compatible by assuming that register_globals will be off and therefore calling a global variable with its prefix in front of its name, such as $_POST['variable'], $_SERVER['variable'] and $_COOKIE['variable']—not, simply, $variable. For more information, see the manual page on [http://php.net/manual/en/language.variables.external.php using external variables].
*Some PHP extensions use libraries that are not threadsafe, hence rendering with Apache_HTTP_Server#Version_2.x's Multithreaded [http://httpd.apache.org/docs-2.0/mpm.html MPM] (multi-processing module) may cause crashes.
==Support==
PHP has a [http://www.php.net/docs.php formal development manual] that is maintained by the open source community. In addition, answers to most questions can often be found by doing a simple internet search. PHP users assist each other through various media such as chat, forums, newsgroups and PHP developer web sites. In turn, the PHP development team actively participates in such communities, garnering assistance from them in their own development effort (PHP itself) and providing assistance to them as well. There are many help resources available for the novice PHP programmer.
These resources include:
*Online forums
**[http://php.net/support.php Official PHP Support Page]
**[http://www.php.net/manual/en/ php.net's manual], which also contains user-contributed notes at the bottom of each manual page.
**[http://forums.devshed.com Dev Shed]
**[http://www.phpbuilder.com PHPBuilder]
*Listservs/Mailing_lists
**[http://www.php.net/mailing-lists.php PHP mailing lists]
**[news://news.php.net/ PHP.net's news server]
*Newsgroups/Usenet
**The group comp.lang.php
*Chat / IRC
**IRC channels #php and #phphelp on EFNet, IRCNet, DALnet and other networks.
**Other IRC channels include [irc://irc.freenode.net/php #php] and [irc://irc.freenode.net/phpfreaks #phpfreaks] on freenode and [irc://irc.invisionize.com/phpcafe #phpcafe] on irc.invisionize.com.
*User groups
**[http://www.phpusergroups.org/ PHP user group registry]
**[http://www.phpclasses.org/browse/group/ Directory of country specific PHP user groups], from the users of the PHP Classes site.
**[http://www.nyphp.org/ New York PHP], the largest user group in North America (they maintain several active [http://www.nyphp.org/content/mailinglist/mlist.php mailing lists]).
==Applications built with PHP==
The following is a list of notable applications developed using PHP:
*bBlog — blogging software
*Coppermine Photo Gallery — gallery software
*Drupal — content management system
*e107 (software) — open source content management system
*Gallery Project — gallery software
*Invision Power Board — Internet forum software
*Mambo (CMS) — content management system
*MediaWiki — wiki software
*Moodle — e-learning platform
*Nucleus CMS — content management system
*phpBB — Internet forum software
*PHP Enterprise — Enterprise grade template system.
*phpLDAPadmin — Lightweight Directory Access Protocol management frontend
*phpMyAdmin — MySQL database management frontend
*PHP-Nuke — content management system
*phpPgAdmin — PostgreSQL database management frontend
*PhpWiki — wiki software
*PmWiki — wiki software
*PostNuke — content management system
*PunBB — Internet forum software
*Textpattern — content management system
*Typo3 — content management system
*UBB.threads — Internet forum software
*vBulletin — Internet forum software
*WordPress — content management system
*Xaraya — content management system
*XOOPS — content management system
==External links==
===PHP home site===
*[http://www.php.net/ Official PHP website]
*Selected sub-pages of php.net:
**[http://www.php.net/license/ PHP license information]
**[http://www.php.net/usage.php PHP.net domain-based graph of PHP deployment]
**[http://www.php.net/urlhowto.php When using the PHP.net website, access the content you would like to see quickly]
*Selected sub-domains of php.net:
**[http://pear.php.net/ PHP Extension and Application Repository]
**[http://pecl.php.net/ PHP Extension Community Library]
**[http://gtk.php.net/ PHP-GTK extension providing an object-oriented interface to GTK+ classes and functions ]
**[http://talks.php.net/ PHP Presents] and [http://conf.php.net/ PHP Conference Material Site] — Sites collecting slides of talks given by well known people from the PHP community. The former one is also known as ''pres2'' (version 2 of the latter).
===Advocacy===
*[http://www.ukuug.org/events/linux2002/papers/html/php/ Experiences of Using PHP in Large Websites]
*[http://public.yahoo.com/~radwin/talks/yahoo-phpcon2002.htm Making the Case for PHP at Yahoo!] — Michael J. Radwin, Yahoo! Engineer explains why Yahoo! has chosen PHP over [http://httpd.apache.org/docs/mod/mod_include.html Apache mod_include], ASP, ColdFusion, Perl, JSP, Java Servlet, J2EE, XSLT and ClearSilver
**Follow-up: [http://public.yahoo.com/~radwin/talks/one-year-of-php-oscon2003.htm One Year of PHP at Yahoo!]
*[http://newsforge.com/newsforge/02/06/11/011243.shtml?tid=5 Newsforge report] of Netcraft web host survey that says PHP is widely used
*[http://www.onjava.com/pub/a/onjava/2003/10/15/php_scalability.html The PHP Scalability Myth] — Jack Herrington
*[http://shiflett.org/archive/46 PHP Scales] — Chris Shiflett
===Resources===
* Open Directory Project:
**[http://www.dmoz.org/Computers/Programming/Languages/PHP/Scripts/Frameworks/ Frameworks]
** [http://www.dmoz.org/Computers/Programming/Languages/PHP/Resources/ General resource sites]
** [http://www.dmoz.org/Computers/Programming/Languages/PHP/Tools/ Integrated development environments, debuggers and other tools]
** [http://www.dmoz.org/Computers/Programming/Languages/PHP/Tutorials/ Tutorials]
* [http://www.wiki.cc/php/Main_Page PHP Wiki]
===Security===
*[http://phpsec.org/ PHP Security Consortium] — International group of PHP experts dedicated to promoting secure programming practices.
*[http://shiflett.org/php-security.pdf PHP Security Workbook] — A 55-page workbook on various security topics.
*[http://www.phpwact.org/security/web_application_security WACT PHP Application Security Wiki] — The Web Application Component Toolkit's wiki page on PHP security resources.
*[http://www.sklar.com/page/article/owasp-top-ten The OWASP Top Ten Security Vulnerabilities] as applied to PHP.
===Miscellaneous===
*Open Directory Project: [http://www.dmoz.org/Computers/Programming/Languages/PHP/ PHP]
Curly bracket programming languages
Free software
Imperative programming languages
Major programming languages
Object-oriented programming languages
Procedural programming languages
Scripting languages
fa:پیاچپی
lv:PHP
th:ภาษาพีเอชพี
vi:PHP
PHP==Criticisms section== I wish there were a consistent "voice" employed in the Criticisms section of this page. I wish there were a simple table editor available in WYSIWIG mode employed throughout this Wiki. I wish there were a non-techy-oriented version alongside, or somehow more prominently displayed/call-attention-to throughout the article. Anyoo, I made the last sentence first in the criticisms section. Hope that's ok. :)olc I wish the whole Criticisms section would consist of anything else than propaganda... I also wonder if the criticisms section can be called objective. The mention of ASP.NET might not be thought as an ad, but it comes across as an recomendation: "Don't take PHP, take ASP.NET." :It's a statement of fact.. feel free to add other web app systems which aren't as vulnerable to cross-site scripting attacks as PHP. User:Rhobite 22:54, Dec 26, 2004 (UTC) ::I love PHP to death, and while I use ASP.NET at work I very much dislike many of the things it imposes and ways it forces you to do things. However, I was the one who added the criticism, and indeed the "ad" for ASP.NET. Being able to point out the faults in a language and not be afraid to mention other, inferior (in your opinion) languages is called confidence. And if people see the "ad" for ASP.NET, and like it better... that's great! There's no reason everyone has to use PHP; just reasons why PHP is better (but, that's just my opinion, not theirs.) -[[User:Unknown W. Brackets|[Unknown]]] 10:30, Dec 27, 2004 (UTC) :::I'm not the one disputing the neutrality of this article, however, I consent. Should that really be in a Wikipedia article? :::I think it would be sufficient for solving this particular issue only to refer to "other languages" and change the wording from "PHP does not" to "PHP leaves it to the programmer". :::Furthermore the whole criticisms section should be reworked. :I don't mind comparisons to other languages and platforms. However, goose, gander. Feel free to go into the ASP.net article and compare it to PHP unfavorably. --User:Stevietheman 16:32, 27 Dec 2004 (UTC) ==PHP extension== ''... other sites (like Wikipedia) tend to dispense with the .php extension.'' This is (I assume) true, but the odd ".phtml" extension does sneak out from under the covers: this AFAIK is an HTML page with PHP content. Would it be fairer to say that Mediawiki (I assume rather than just Wikipedia) tends to hide most PHP-related extensions? User:Phil Boswell 14:54, Dec 17, 2003 (UTC) :The 'other' extensions, such as .php3, .phtml, etc. are all going out, especially because many servers don't parse them. The most universal one is .php, and it is by far the most often used. When you see this in MediaWiki, it's because you're following a "direct" link that isn't being redirected through a rewrite or path info. :It is a common thing to avoid use of the .php extension, and more significantly of query strings, when possible because Google tends to treat sites it can flag as "generated content" much worse than those that are static (or generated ones that pretend.) However, this is okay if you don't want the page on Google - for example, this edit page is wiki.phtml?... and no one searches for edit pages, so this is perfect.
:My point is, it's not that MediaWiki is hiding .php and failing to hide .phtml, but rather that it is just not *always* hiding the .phtml. I would suggest the text is fine as-is. -[[User:Unknown W. Brackets|[Unknown]]] 21:05, Nov 9, 2004 (UTC)
::It's not Mediawiki hiding the .php extension at all, its the webserver (Apache). In that case it is fairer to say that it is this website, not mediawiki, that hides the extensions. User:Borb 20:41, 12 Jun 2005 (UTC)
==Advocacy==
The article currently seems quite to advocate PHP a little too much. User:Pcb21 User_talk:Pcb21 (Python programmer).
:You first correct Python programming language and come back. I don't find any advocacy here. You should learn PHP to know what is true and what is hype.--User:Rrjanbiah 07:49, 4 Mar 2004 (UTC)
:I agree entirely.
:*"The error messages generated by PHP are easier to comprehend than those of Perl." is POV nonsense - the source cited is not at all notable or correct.
:*There is no criticism of PHP5's added features as being irrelevent to most developers - take a look at each of "Applications built with PHP" and see that maybe 10 percent use even PHP4's OOP features.
:*There is no criticism that PHP5 is not threadsafe - meaning Apache 2's multithreaded MPM is useless for servers running PHP.
:*Finally there is no mention of PHP and applications written with PHP having a notorious security record - at a glance I'd say 90% of the applications in "Applications built with PHP" have at some point had a serious security vulnerability in the past year. You may argue that this is not relevent to the language itself, but it really is when you consider PHP works to make it easy to write unsafe code (as currently touched upon in the Criticisms section) and does not contain sorely needed features such as variable tainting and deprecation of old, unsafe functions.
:--User:Ctz 23:13, 25 Mar 2005 (UTC)
::Agree with the first one, or at least it's not worthwhile to even bring up in the article. The second one is your own POV, but it might be worthwhile to add info about the degree of OOP implementation in PHP apps. The third one sounds like a good criticism. The fourth one is your POV... "notorious"? Please. — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Work">Special:Contributions/Stevietheman 17:20, 26 Mar 2005 (UTC)
==Advocacy II==
The following statements sound awfully "POV" to me:
:''Many PHP programmers have reported having had trouble trying to learn other languages in the past and ultimately giving up after each attempt until attempting to learn PHP. The ease of programming in PHP has made it so these programmers are able to learn the basics of programming and are then able to continue on to other languages suchs as C/C++ or Perl/Python/Java and then finding themselves back programming in PHP for its speed of development in comparison to other languages.''
I'd use a stronger word than "POV", but this is a family encyclopedia. :-)
Comments? Does anyone have any hard data to support the claims in this 'graph?
User:Atlant 17:20, 28 Mar 2005 (UTC)
==PHP Library/extension list==
====Listings====
PHP is slowly moving ALL extensions into http://pecl.php.net/ PECL meaning all the listed extensions will be mixed in with various "not-so-popular" extensions like http://pecl.php.net/Net_Gopher Net_Gopher so eventually this list will be enormous. Also, all these PECL extensions will be documented at php.net/manual so this is something to discuss. Eventually there will be 100's to one day 1000's of extensions all of which can't be listed in this Wiki. User:Philipolson
====Date====
Could somebody provide a date for the complete list of libraries? In other words "This is a complete list of libraries as of E_ALL ^ E_NOTICE. And short_open_tag on. These are constants now. Which means, yes, it's still a problem... as much as I hate to say it is, as much as I wish PHP 5 could fix it. -[[User:Unknown W. Brackets|[Unknown]]] 01:05, Dec 15, 2004 (UTC)
In response to: "And why is this? Did you know that I could manipulate argv such that poorly written C programs would fail? ( . . . ) Simply because you were taught global is bad in school?": Just because the same vulnerability exists in other languages does not mean we should not mention it in here. This is an encyclopedia article; I think that it should include as much information as it can. Though, I think it can be re-worded a bit, as what you say is still somewhat true.
--User:Qrc 03:50, Dec 19, 2004 (UTC)
:The wording is totally rediculous. You're making it sound like if $_GET was not used (so I assume register_globals is better?) it would allieviate the problem. You're also ignoring $_POST, which is much more often the problematic one... not to mention $_COOKIE which so many people think is innocent.
:However, those problems are NOT problems in PHP. They exist in every language, and can be said of any variable or data input from the user. I replaced your criticism with a more valid one; that PHP does not do any checking on the input by default. That actually makes sense for it to do - there's nothing for PHP to do to stop you from misusing $_GET.
:And, if you mean using /etc/passwd in the query string, this is something PHP can protect by use of open_basedir. In other words, the criticism sounds more like a general one of newbie programmers than of PHP specifically. And the fact that it is not a criticism of PHP means it shouldn't be in the section for them!
:Sorry, I just don't get why this would make any sense. -[[User:Unknown W. Brackets|[Unknown]]] 08:21, Dec 19, 2004 (UTC)
:Agreed, the above criticism about $_GET makes no sense unless you feel "The ability to read HTTP headers" is a bad thing and that's ridiculous. At any rate, regarding checking user input, isn't this a developers job? See also strip_tags(). --User:Philipolson
== Incorrect link to newt ==
The link to newt is wrong but I can't find a corect link, should it be removed?
:I would personally remove it... or, that is, not link it. -[[User:Unknown W. Brackets|[Unknown]]] 21:02, Nov 15, 2004 (UTC)
:Do something about it. I cant even find any documantation on google with "newt gui" about newt. Is it a real product?User:Patcat88 04:49, 9 Jan 2005 (UTC)
::I de-linked it, as the article linked was about the animal version. However, there does appear to be a Newt text-based UI. --User:Stevietheman 04:58, 9 Jan 2005 (UTC)
==No links at all?==
User:Tregoweth, while I strongly support your motivations and intents... was removing ALL but one of the links really necessary? Sure, many of the links being added (mostly by unregistered users) were not needed, and there were far too many (perhaps a list of PHP development tools or something would be better?)... but removing all of them? -[[User:Unknown W. Brackets|[Unknown]]] 09:16, Dec 9, 2004 (UTC)
:I restored the links. I agree that there's probably some spam in there, but the removals should be more surgical rather than like a rape. :) There were too many useful links for PHP developers there. -- User:Stevietheman 16:55, 9 Dec 2004 (UTC)
::I'm not saying there shouldn't be ''any''; just keep in mind who will be reading the article. Someone looking up PHP here probably doesn't know anything about it and is just looking for basic information, so links to development tools, etc., seem excessive. And shouldn't PHP developers have better places to look for links than here? :) —User:Tregoweth 17:02, Dec 9, 2004 (UTC)
:::Perhaps this calls for a reorganization of the article or a split into separate articles. There are indeed many experienced PHP developers or experienced programmers in general who may want more extensive information about PHP, esp. about how it can be extended to do enterprise web application development. -- User:Stevietheman 16:44, 15 Dec 2004 (UTC)
::Indeed... many of the links aren't useful, imho. For example, I am not going to even look through 22 "frameworks". To my experience they aren't that popular, really, and these aren't really articles that contribute to "PHP". If they are needed, they should be in Wikibooks or in their own article... at least in my opinion.
::And, while tutorials are nice... we have the Wikibooks:PHP which should include, theoretically, any tutorial material needed. (I know I've read somewhere that links should only be used for external information that cannot be brought into the article.) As it is, this article is getting spammed by low-grade tutorials with plenty of advertising on them. And, indeed, ones that cannot be edited and are not FDL... which is not, imho, the spirit of Wikipedia.
:::I don't necessarily disagree, but I'd like to see an intelligent paring down and moving into other spaces that are linked to, such as the PHP wikibook. -- User:Stevietheman 16:44, 15 Dec 2004 (UTC)
::For example, the Mozilla Firefox article is very popular. There is a lot of development work on it, extensions (XUL), and etc... and it has eight external links. I think less than ten is a wonderful goal.... but definitely less than twenty five! -[[User:Unknown W. Brackets|[Unknown]]] 00:40, Dec 10, 2004 (UTC)
:::Firefox probably has too few links. At any rate, this comparison is unconvincing because we're talking about a complex programming language, not unlike other complex programming languages. However, I certainly support the weeding out of light or superfluous links, as I always do. -- User:Stevietheman 16:44, 15 Dec 2004 (UTC)
== Glowing terms ==
This article frequently speaks of PHP in glowing, exaggerative terms. I'll try to go through and change what needs to change but I am putting on an NPOV notice with the hope that people will help out. Examples: "thanks to its modular design", "easy interaction with a large number of relational database systems" (note the exclusion of MSSQL), "extensive documentation", "many contributors", "All of this "looseness" makes it very easy to do many things", "major step for PHP, because it represents its beginning adoption as a genuine programming language", "PHP, unlike ASP, has some of the largest free and open-source libraries", "PHP's object-oriented functionality has been very much enhanced", "There are many excellent help resources available".
It's also interesting that the criticism section is weasel-compliant, with much use of words like "alleged", "said to be", etc. No other section has this treatment. User:Rhobite 04:24, Dec 12, 2004 (UTC)
:I totally agree. This is about as bad as Mariah Carey. Fixing it all would be an effort though. User:Dcoetzee 23:03, 13 Dec 2004 (UTC)
:The exclusion of MSSQL was most likely an oversight, although its exclusion from a list of examples isn't a POV issue. Also, I agree that some marketing terms are used therein, but to brand the article with the NPOV notice seems a tad extreme, especially since these "glowing" terms are reasonable assessments. -- User:Stevietheman 16:38, 15 Dec 2004 (UTC)
::Maybe it was a little extreme, but the article reads like an album review. NPOV disputes aren't just for political pages. And remember, truth isn't a defense to POV statements. Wikipedia does have a pro-open source bias and it's important to try and reduce this bias. User:Rhobite 22:34, Dec 15, 2004 (UTC)
==External links proposal==
How about we point to [http://www.dmoz.org DMOZ] instead of showing many of the links we're now using? Specifics:
*Frameworks links -> [http://www.dmoz.org/Computers/Programming/Languages/PHP/Scripts/Frameworks/ this link]
*Tutorials links (leaving articles in place) -> [http://www.dmoz.org/Computers/Programming/Languages/PHP/Tutorials/ this link]
*IDEs and debuggers -> [http://www.dmoz.org/Computers/Programming/Languages/PHP/Tools/ this link]
In the cases where links we have aren't in the DMOZ lists, then go to the corresponding DMOZ page and request they be added.
Re: Frameworks, we should then add a blurb regarding "what is a PHP framework?" and its importance to enterprise web application development (or something to this effect). -- User:Stevietheman 20:46, 15 Dec 2004 (UTC)
:Generally... I like it. It's much better to ask people to add their tutorials, toolkits, and etc. to DMOZ (which is a site for links) than here or another article. It also moves out the content that's supposed to not be duplicated in this article (imho, and according to my understanding of what Wikipedia is not.)
:I still think you're giving to much credit to frameworks, but that's a moot point and definitely only my point of view. So if no one else disagrees, I say go for it. -[[User:Unknown W. Brackets|[Unknown]]] 05:28, Dec 16, 2004 (UTC)
::OK... I'll hold off on the frameworks blurb for now so that it can be discussed first. Otherwise, without objection, I'll make the changes I described. -- User:Stevietheman 17:45, 16 Dec 2004 (UTC)
== Mediawiki famous? ==
Although we certainly have a pro-Wikipedia bias here, is "MediaWiki, the software behind Wikipedia" really deserving of in-the-intro labelling as a "famous" PHP product, without mentioning dozens of more widely-known ones? User:Dcoetzee 11:39, 28 Dec 2004 (UTC)
:I can't say I disagree. As far as I'm concerned, feel free to improve. --User:Stevietheman 16:03, 28 Dec 2004 (UTC)
==Frameworks==
I just wanted to report that the Open Directory Project is now listing most of the [http://www.dmoz.org/Computers/Programming/Languages/PHP/Scripts/Frameworks/ PHP frameworks] that used to be listed in this article. Enjoy! --User:Stevietheman 21:42, 10 Jan 2005 (UTC)
==Vandals==
What's with these vandals as of late? Anything we can do to stop this? — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Contrib">Special:Contributions/Stevietheman 11:26, 8 Feb 2005 (UTC)
:It appears to be a runaway spambot. Since it always posts a link to the same few domains, I asked on Wikitech-L for these domains to be added to the spam filter. The other option is to block the vandals on sight, which we've also been doing. Many of them are already in spam blocklists, indicating they're used to send e-mail spam as well. I guess Wikipedia could start checking IP addresses against a DNS blocklist but that would be a big change. User:Rhobite 15:04, Feb 8, 2005 (UTC)
::Unfortunately, it's not the same few domains. There are several dozen, and I suspect he registers new ones on a continual basis (as long as each domain earns more than the $6 or so it costs to register them in bulk, he can afford to keep doing that indefinitely). An admin added the complete list of domains used so far to the spam filter, but I'm not sure it'll help, for the reasons mentioned.
::Blocking the anon IP addresses on sight doesn't work because they are hit and run and he keeps coming up dozens of new ones every day. A few of the anonymous IPs were AOL addresses, so we know these are not open proxies... I suspect these are hacked zombie machines that have been "owned". There are literally millions of insecure home PCs out there that aren't properly updated with the latest security fixes.
::So blocking linkspam on a per-domain basis doesn't really work and blocking anon IP addresses doesn't really work either. We are reverting on a timely basis, but the page histories still grow by dozens of edits every day, because the spambot hammers the same page a dozen times in a row even if the last edit was its own. So the only real solution for the time being is to vprotect.
::But even vprotect is a problem, because the bot follows links. Some of the pages linked to from PHP have also been hit, as well as their talk pages. So we might come back tomorrow and find new pages under attack.
::I'm not sure what the solution is if the spambot keeps it up. Checking IP addresses against one of the publicly available "blackhole" lists? Implementing a form of protection that only allows a page to be edited by logged-in users, as an alternative to choosing between wide open and completely protected?
::The best thing would be if the spambot operator realized the whole thing is pointless, because the "nofollow" on Wikipedia links means he won't improve his Google ranking by doing this. He's doing damage with nothing much to gain.
::-- User:Curps 03:59, 10 Feb 2005 (UTC)
:::Actually most of them appear to be from a free subdomain provider, 6x.to. I didn't know that other pages have been hit, that's unfortunate. I don't think there's any technical solution which will work on a long-term basis. Subscribing to a blacklist would have severe ramifications, it's something to be approached slowly if it's approached at all. The best approach is to continue dealing with it on a case-by-case basis, blocking spam sources (I agree they're probably trojanned), and adding spammed web sites to the filter. But beware of joejobs. User:Rhobite 04:33, Feb 10, 2005 (UTC)
::::The point is, every new time the spambot hit a page I saw a different linkspam URL and a different anon IP. So case-by-case won't work. We have filtered out all the domains seen so far and temporarily blocked all the IPs seen so far, but we'll just see new ones as soon as we un-vprotect. And we don't dare do that because last time we got 67 spam edits in 10 hours (and the reverts weren't done cleanly, so a spam URL stayed in the article for several hours).
::::The reality is that a popular topic like PHP is going to have to remain protected indefinitely (weeks or months?). I don't think there's general awareness of how serious this could potentially be. The other pages are all vprotected too, although the rate of hammering is lower for most of them; many of them are just longtime redlinks, so it's not a great loss if they stay vprotected. But who knows when/if other popular-topic pages will be targeted?
::::The spambot URLs are a bunch of subdomains of 6x.to and also uni.cc, and also some .ru and .su domains. Google shows two or three legitimate 6x.to and uni.cc external links within Wikipedia... could these be sacrificed? It would be nice to be able to say "block all of 6x.to except for the following domains", but apparently the spam filter can't do that yet.
::::-- User:Curps 07:45, 10 Feb 2005 (UTC)
:::: The attack has now spread to PHP-Nuke and PL/I. Both of these pages will probably have to remain protected indefinitely. Again, I don't think there's general awareness of how serious this is. -- User:Curps 07:51, 10 Feb 2005 (UTC)
:::::You're right that this is a serious problem. And even if blocking 6x.to would solve this problem, it's not a permanent solution. My point is there is no permanent solution. But long-term protection, especially for nonexistent articles, is not feasible.. it's unwiki, as they say. User:Rhobite 22:10, Feb 10, 2005 (UTC)
::::::Yes, we have a dilemma with no easy solutions... the very definition of a "serious problem". We need better technical means for detecting and dealing with bots... no human would edit the same article a dozen times per minute. We probably need a throttling mechanism to limit the rate of edits by the same IP... this would also help with the Willy on Wheels vandalism as well. Perhaps an intermediate level of protection for a page, allowing only edits by logged-in users who have been registered for more than a few days, would be an alternative between fully protected and completely unprotected (we'd need to implement captcha to prevent bots from registering accounts). Traditional means aren't adequate here, and I hope the developers have some awareness of the issues faced by admins. -- User:Curps 23:28, 10 Feb 2005 (UTC)
::::::Alternatively, one could create a spam-protected flag (akin to the protected flag) that requires users to solve a captcha to edit the page. User:JosephBarillari (User_talk:JosephBarillari) 04:36, 23 Mar 2005 (UTC)
==Popularity==
Just because a web server says it has PHP installed doesn't mean that PHP is really used on that domain.
== Programming language ==
PHP is not a programming language... it is more a scripting language than anything. Nothing gets compiled in PHP. --User:AllyUnion User talk:AllyUnion 10:23, 21 Feb 2005 (UTC)
:I don't think it's required anywhere that a "programming language" be compiled. Last I knew, no one ever argued that BASIC isn't a programming language and in its original form, that was a Interpreter (computing) language, never compiled. Even today, many versions are still semi-interpreted.
:Really, if you try to decide which languages are scripting langauges and which are some kind of official "programming languages", we'll be splitting those hairs forevermore.
:User:Atlant 18:58, 3 Mar 2005 (UTC)
::I agree. Many people make a distinction between scrpiting languages and programming languages, but it's not that simple. Scripting languages are more like a subset of all programming languages. The division isn't always clear, either: Python, for example. User:Rhobite 21:00, Mar 3, 2005 (UTC)
:Programming language doesn't need to be compiled. e.g. you can write a scripting engine that supports C++. What you are referring is compiled language. --User:Minghong 11:44, 29 Mar 2005 (UTC)
A scripting language of any complexity tends to become usable for more general programming. This happened to perl and later to PHP. When you consider that Wikipedia runs on a reasonably complex application written in PHP, and nearly all the major forum applications and many of the webmail applications are written in PHP, it seems absurd to make the distinction that PHP is a scripting language. --User:Tony Sidaway|User talk:Tony Sidaway 11:59, 29 Mar 2005 (UTC)
There are languages that do blur the lines between what is a programming or scripting language and PHP is certainly heading in that direction, but as long it’s being interpreted, it’s factually incorrect to call it a programming language. The whole basis of PHP development is still and will be toward scripting web pages, with a few other projects aside from that which will most likely lead PHP to become a full programming language. Many think that there is something derogatory about the term "scripting language" that it only refers to simple things, like JAVASCRIPT (which is another scripting language). Well tell that to UNIX admins who have been writing incredibly complex scripts for administration processes for years now! PHP defines itself as a ''general-purpose scripting language'' and that is exactly what the first line of the article should say.--User:Seanor 16:17, 14 Apr 2005 (UTC)
:Every program is data; every piece of data influences the behavior of a program. It's useless to think that there can be a useful distinction between "programming languages" and "scripting languages". PHP can be byte-compiled; with PHP-on-parrot apparently maturing, it may soon be able to be JITted and native-compiled as well. But whether a program is interpreted directly by a CPU, or indirectly by a piece of software, is hardly relevant in most cases. (And see the Transmeta Crusoe for another example of blurring the line.)
:Hrmmm. A scripted web page _is_ a computer program! Esp. when you consider PHP _programs_ like phpBB that aren't simple scripted web pages but rather .php program files that execute and generate output based on page templates. What the freak are you talking about? "factually incorrect"--that's nonsense. PHP is a programming language. Period. That's used in web scripting. — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Work">Special:Contributions/Stevietheman 20:46, 14 Apr 2005 (UTC)
::What is it with people thinking there is something derogatory with term “scripting language”? It’s not a slur. Generating output, working with SMARTY is fantastic, it’s great with DBs especially mysql, it can do wonderful things, can you can make complex data structures with it and even more complex web sites if you want…
::When you consider phpBB what is executing and generating all that nice bulletin board stuff? Its .php scripts run through the PHP interpreter. So does PHP need an interpreter to work? YES! That’s the PROGRAM which executes PHP scripts. It’s not executable without it. Without a PHP interpreter running in the background here this page would not exist. I firmly believe that PHP will one day be a programming language, a language that can be used to create computer programs, but as of yet this is not the case. Therefore it’s factually incorrect to call it a programming language. It was and still is a scripted language. It’s a language that can be used to make scripts that can be run through an interpreter to do useful things. However some languages do blur the line between if it is scripted or programming language e.g. Perl and Lisp.--User:Seanor 11:45, 15 Apr 2005 (UTC)
:::A scripting language *is* a programming language. I didn't say "scripting language" was derogatory. It's a matter of term precision here. To say PHP isn't a programming language is to defy reason. Programming languages that are interpreted are still programming languages. I sincerely hope you don't possess a CS degree, for if you did, you need to go back to school. — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Work">Special:Contributions/Stevietheman 20:42, 15 Apr 2005 (UTC)
::When PHP becomes a language that can be used to make computer programs it will then be a programming language, but for right now it is a language that can be used to make scripts containing very high level institutions that can be run through an interpreter which executes those instructions. The very first line of this article is wrong. Since PHP is defined as scripting language, that is what it has been and is being used for, that is what should formally define what PHP is. Discussions about the groupings of different types of different languages, e.g. mark-up, procedural, assembly and so on are not apart of what PHP is.
::This is a definition of what PHP is not what people want it to be. Not even Rasmus Lerdorf defines PHP as a programming language, not even the dev teams who work on PHP formally define it as a programming language, not even every single online dictionary and book on PHP defines it as a programming language, including wikibooks[http://en.wikibooks.org/wiki/PHP]...... This is too ridiculous I can’t continue this. Call PHP whatever you feel like.--User:Seanor 13:34, 18 Apr 2005 (UTC)
:::This is a programming language. There are two flavors of programming languages- interpereted and compiled. This one happens to be interpereted. Oftentimes you will find the term scripting used in place of the term interpereted, but they mean the same thing. 15:56, 22 Apr 2005 (UTC)
::::''"There are two flavors of programming languages- interpereted and compiled."''
::::There's also threaded code, a rather odd but often very-efficient way of splitting the difference between compiled and fully-interpreted.
::::User:Atlant 13:23, 23 Apr 2005 (UTC)
==Stupid question that goes unanswered==
On behalf of the readers whose level of technical knowledge is waaaaay below what this article presupposes: If I see a URL ending in .pdf, I know what it means and what to expect (I'll need Acrobat, it will tend to load more slowly than other links, etc.). What does it tell me if I see a URL ending in .php? Maybe nothing, if PHP is just a programming language rather than a particular format? If that's the case, it would help us cyberklutzes if there were a sentence saying that. Having encountered such a link in the course of doing research for Wikipedia, I came here hoping for enlightenment, but I'm afraid this article goes over my head. User:JamesMLane 17:23, 2 Apr 2005 (UTC)
:A page ending in ".php" will be treated (by the web server) as though it contains PHP code along with HTML code. The PHP code embedded into the page will be executed, and anything this code "outputs" will be intermingled with the HTML code that already existed on the web page. By the time it gets to your web browser, the HTML is all that is left; all traces of the PHP code are gone.
:To make a concrete example from this, imagine a web page that wants to include the current date and time within it. We have a whole bunch of HTML that is 99% of the web page, and here, in one little table data item, we want the date and time. Using PHP, between the (td) and the (/td), we simply stick a little bit of PHP code that outputs the current date and time. As the web server is sending the web page to you, it eventually encounters that little snipit of PHP code which it then runs. The code puts out the date and time (say, "2005.04.02 14:28") and the web server then cranks out the rest of the HTML web page. At your browser, you simply see "...(td)2005.04.02 14:28(/td)...", just as if that date and time were hard-coded into the HTML.
:Does that answer your question? Would you like to edit the article now? :-)
:User:Atlant 19:30, 2 Apr 2005 (UTC)
::Yes, you answered my question, thanks. I looked at the article and wasn't sure where or even whether to incorporate the information. I did feel confident in removing a superfluous hyphen, though, and that will have to be my contribution to PHP at this time. User:JamesMLane 23:54, 7 Apr 2005 (UTC)
== Whither the hyphen?==
User:JamesMLane 23:54, 7 Apr 2005 (UTC) wrote: ''I did feel confident in removing a superfluous hyphen, though, and that will have to be my contribution to PHP at this time.''
:I'm not confident that hyphen change was correct — the words ''widely-used'' are being used as a compound modifier. But I've seen it both ways. Anyone know a good grammarian? User:Dcoetzee 01:54, 8 Apr 2005 (UTC)
::Hyphens tend to come and go, and their usage varies widely. The usual trajectory is that two words that become closely associated sometimes become hyphenated and, if they remain closely associated long enough, the hyphen will eventually disappear. But I'd expect the speed of this varies a lot depending on which English dialect we're discussing and how formal the writing style is. "Copy edit" --> "copy-edit" --> "copyedit" might be a nice example of this for Wikipedians.
::If we get to the point of arguing about hyphens (as, for example, Atheism is now exhausting a lot of energy arguing "m-dashes" versus "n-dashes"), we might as well give up. ;-)
::User:Atlant 11:01, 8 Apr 2005 (UTC)
:::The hyphen in such instances is widely used because that's a very common error, about on a par with the misspelling "millenium". As our article on hyphen notes, there's generally no need to hyphenate a compound phrase consisting of an adverb and an adjective because there's no ambiguity; the adverb modifies the adjective. By contrast, in a phrase like "twentieth-century invention", "twentieth" is an adjective that could modify either of the nouns that follow, so the hyphen is proper to indicate that it's intended to modify "century".
:::I usually correct these superfluous hyphens when I notice them, but I stay out of the holy wars over m-dashes and n-dashes. User:JamesMLane 18:41, 8 Apr 2005 (UTC)
== Available functions don't depend on build-time configuration settings? ==
User:Stevietheman reverted a minor edit of mine that changed a phrase from "available functions depend on configuration options" to "available functions depend on the build-time configuration settings." Most of the [http://www.php.net/manual/en/funcref.php functions] that I'm aware of that aren't available by default come with installation notes like "In order to use these functions you must compile PHP with ''xx'' support by using the ''--xx[=DIR]'' configure option." I changed the phraseology to "build-time configuration settings," which are non-trivial to change, to differentiate them from [http://us3.php.net/manual/en/configuration.php runtime configuration options] that can be easily set in php.ini. If I'm misunderstanding the facts please tell me, but I feel that my wording is more clear. —User:MilesK (User_talk:MilesK) 04:22, Apr 11, 2005 (UTC)
:It's both actually. Your wording left out the fact that features can be turned on or off from the php config file, post-build. I reverted instead of copyediting... sue me. :) — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Work">Special:Contributions/Stevietheman 04:31, 11 Apr 2005 (UTC)
::Sure, I'll have my lawyers call your lawyers :P. Before I edit that spot again, though, could you show me an example of just one function that can be made available/inavailable based on php.ini settings? I'm not trying to challenge you, I just don't want to make it any wordier than it has to be. Thanks —User:MilesK (User_talk:MilesK) 04:51, Apr 11, 2005 (UTC)
:::"Dynamic Extensions" section of php.ini is used for enabling non-built-in functions. For example, have "extension=php_oracle.dll" (Windows) or "extension=php_oracle.so" (Unix/Linux) to have Oracle functions available (given that the Oracle client libraries are also installed). — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Work">Special:Contributions/Stevietheman 10:47, 11 Apr 2005 (UTC)
::::Fair enough. I hadn't heard of those before; I'm not exactly a command-line power user so I haven't really had much experience with compiling extensions as shared libraries. I really do think however that adding extensions is more complex than changing normal options, and that the article should reflect that. How's the new wording? :) —User:MilesK (User_talk:MilesK) 21:04, Apr 11, 2005 (UTC)
==Angels dancing on PHP pinheads==
I've read in some places that 2,147,483,648 angels can dance on the head of a PHP script, but elsewhere, I've read that it's only 255 angels. But does it matter? Can't we all stop following the script and simply get with the program?
Seriously, there's some discussion going on here that would be far better placed over a couple of pitchers of beer rather than in an alleged encyclopedia because it's the sort of debate that has no empirical answer and '''won't ever be settled'''.
User:Atlant 14:00, 18 Apr 2005 (UTC)
== Magic Quotes Disabled by Default? ==
From PHP#Built-in_functions...
''Magic Quotes are turned off by default in PHP 5. For more information, see the security section in the [http://php.net/manual/en/security.magicquotes.php Magic Quotes] chapter of the PHP manual.''
Where on php.net does it say that magic quotes are disabled by default in PHP 5? It doesn't say anything about it in the security section that's linked to...
:My error, sorry. I was looking at the contents of the php.ini-recommended and confusing it with the php.ini-dist, especially since the former says, "This is the recommended, PHP 5-style version of the php.ini-dist file." That sentence should either be removed, or changed to reflect the fact that magic_quotes_gpc = Off is a recommendation and not a default in PHP5. —User:MilesK User_talk:MilesK 21:28, Apr 25, 2005 (UTC)
== mysqli ==
I noticed that this was not in the libraries list. I think it is a library (not totally sure what a library actually is) and it is documented. Should it be added to the list? User:Borb 11:50, 24 May 2005 (UTC)
==Applications built with PHP==
Would anyone agree that it's time to create a new article for this list and take it out of this article for good? — Stevie_is_the_man!">User:Stevietheman User talk:Stevietheman | Special:Contributions/Stevietheman 18:54, May 28, 2005 (UTC)
== PHP 10th birthday! ==
Happy birthday, PHP!
(June 8th, 2005)PhP#REDIRECT Philippine peso Php#REDIRECT PHP See other meanings of words starting from letter: PPA | PB | PC | PD | PE | PF | PG | PH | PI | PJ | PK | PL | PM | PN | PO | PR | PS | PT | PU | PW | PX | PY | PZ |Words begining with PHP: PHP PHP PhP Php PHP-Fusion Php-fusion PHP-GTK PHP-Nuke PHP-Nuke Php-nuke Php5 PHP:_Hypertext_Preprocessor PhpAdsNew PhpAdsNew PhpAdsNew/deletion PhpBB PhpBB Phpbb PhpCMS PhpCMS PHPEdit PHPEdit Phpfusion PhpGedView PhpGedView Phpgedview Phpgedview PhpGrabComics PhpLDAPadmin PhpMyAdmin Phpmyadmin Phpmylibrary PhpMySQL Phpnet Phpnuke PhpPgAdmin PHPSlash PhpSlash PhpStreamcast PHPTiddlyWikis PhpWCMS Phpwcms PhpWiki PHP_(disambiguation) PHP_5 Php_bulletin_board PHP_Data_Objects Php_editors PHP_Enterprise PHP_Extension_and_Application_Repository PHP_Extension_Community_Library Php_fusion PHP_Hypertext_Preprocessor PHP_license Php_nuke PHP_programming_language PHP_programming_language PHP_script PHP_script PHP_script_automatic_wikification PHP_script_automatic_wikification PHP_script_bug_reports PHP_script_FAQ PHP_script_FAQ PHP_script_feature_requests PHP_script_new_features PHP_script_new_features PHP_script_new_features PHP_script_tech_talk PHP_Wiki |
These materials are based on Wikipedia and licensed under the GNU FDL
YouTube.com videos better site than Turbo Tax 2007 |
|
|