PHP - meaning of word
Rozmiar: 8938 bajtów


PHP



PHP 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'':

\n";

// Be sure to count DOWN
for ($i = 99; $i > 0; $i--)
{
   echo $i . ' bottle' . plural($i) . ' of beer on the wall,' . $lb;
   // We don't actually need a new echo for each line. Let's see:
   echo $i . ' bottle' . plural($i) . ' of beer.' . $lb .
      'Take one down, pass it around,' . $lb .
      ($i - 1 != 0 ? $i - 1 : 'No more') .
      ' bottle' . plural($i - 1) . ' of beer on the wall' . $lb . $lb;
}

echo 'Go to the store,' . $lb . 'buy some more,' . $lb . 
   '99 bottles of beer on the wall!';
?>
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):

miles;
   }
}

$car = new Car($param);
echo $car->miles; //echos the value of the property "miles" of the class "Car"
?>
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 BoardInternet forum software *Mambo (CMS) — content management system *MediaWikiwiki software *Moodlee-learning platform *Nucleus CMS — content management system *phpBB — Internet forum software *PHP Enterprise — Enterprise grade template system. *phpLDAPadminLightweight Directory Access Protocol management frontend *phpMyAdminMySQL database management frontend *PHP-Nuke — content management system *phpPgAdminPostgreSQL 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 ." User:216.74.222.174 05:37, 27 Mar 2004 (UTC) ==Introduction== I think the parenthetical list of possible expansions of the abbreviation detracts from the introductory paragraph. I think it should be reduced to: :PHP (PHP Hypertext Preprocessor) is a widely used open-source programming language... The other names should be moved somewhere else in the article. Possibly to the history section? --User:Rparle User_talk:rparle 14:31, Jun 16, 2004 (UTC) ::Sounds good to me. As far as I'm concerned, go ahead and make the changes. -- User:Stevietheman 14:55, 16 Jun 2004 (UTC) ::I forgot to mention earlier that I went ahead and made the changes. :) -- User:Stevietheman 14:51, 7 Aug 2004 (UTC) :::I didn't see this remark until just now, but earlier today, I made another change along these lines. Of course, since then the page has been vandalized a bunch of times (sigh)! Assuming the page isn't currently vandalized, read it and see what you think... :::User:Atlant 18:51, 3 Mar 2005 (UTC) ::::Looks good to me. Thanks. — Stevie_is_the_man!">User:Stevietheman Talk">User talk:Stevietheman | Contrib">Special:Contributions/Stevietheman 23:05, 3 Mar 2005 (UTC) ==Pros and cons== I am definitely a major supporter of PHP, but this article could use a "Pros and cons" section like that in the Delphi programming language article. It's a good way to help people better understand if this is the language/platform they should use for their project, and have the ability to compare/contrast to other languages' capabilities. I probably won't have the time to write this in the near future, but if anyone is so inclined, please go ahead and do it. -- User:Stevietheman 14:50, 7 Aug 2004 (UTC) :I am both a fan AND detractor of PHP. I hope my addition of a criticism section meets with everyone's approval. User:AdmN 19:59, 24 Aug 2004 (UTC) ::Looks like a good writeup or at least a start. I cleaned it up a little. -- User:Stevietheman 20:41, 24 Aug 2004 (UTC) ::Unfortunately, some of the criticisms are funny and looks like intentionally found/written. Just curious, where else such criticism is available? --User:Rrjanbiah 05:33, 25 Aug 2004 (UTC) :I'm not sure what you mean by "intentionally found," though I assume you are implying a non-neutral point of view. I use PHP on a semi-regular basis. Like any language on Earth, it is great at some things, and not so great at others. All in all, I enjoy PHP. It allows me to do things that would be nearly impossible, (or at least really hard), without it. It is, in fact, the only server-side technology that I have ever really gotten into. :This page: [http://tnx.nl/php] both provides criticism and the following links: [http://www.ukuug.org/events/linux2002/papers/html/php/], [http://n3dst4.com/articles/phpannoyances/], [http://keithdevens.com/weblog/archive/2003/Aug/13/HATE-PHP], [http://www.webkreator.com/php/community/php-love-and-hate.html]. :User:AdmN 06:46, 25 Aug 2004 (UTC) ::PHP is now 5 and many of the criticisms are now not valid. Like many other languages, PHP is also inspired by C's function names (like strcmp, stricmp, etc). I see, much of the criticism are like complaining C's syntax by an assembler diehard who is confined to only one way of thinking and syntax. --User:Rrjanbiah 10:17, 25 Aug 2004 (UTC) :::We shouldn't be afraid of criticism. The listed criticisms of PHP 4 are based on facts (otherwise, I would have edited them out). We should also realize that many of us will be using PHP 4 for a long time before migrating to PHP 5. Even if PHP 5 has fixed some of the problems, most PHP developers have to deal with web hosting providers that haven't upgraded for months (or maybe even years) to come. -- User:Stevietheman 13:56, 25 Aug 2004 (UTC) ::Fair enough, but criticising old version (which is fixed and improved now) is not pleasing. Also, _criticising PHP because it is PHP_ is not interesting, IMHO; otherwise the computing world is only with 1s and 0s without C, PHP, etc. --User:Rrjanbiah 06:23, 26 Aug 2004 (UTC) :::Not pleasing to whom? It's pleasing to me to know facts about any language I might choose for a project. Further, PHP is not being singled out here. Delphi programming language has a "Pros and cons" section, and other languages includes criticisms as well. Let's not get worked up over this. -- User:Stevietheman 14:45, 26 Aug 2004 (UTC) == IDE explanations please == The IDE section could do with being more than just a list of links. I for one could do with some sort of explanations as to the relative strengths/weaknesses of the various IDEs, together with which OS they work on. --User:Phil Boswell | User talk:Phil Boswell 10:24, Aug 20, 2004 (UTC) :There is a wonderful site dedicated to this [http://www.thelinuxconsultancy.co.uk/phpeditors/]. My favorite is PHPEdit [http://www.phpedit.net/] (now not free), PHP Coder, devPHP and Komodo (All on XP). --User:Rrjanbiah 05:39, 25 Aug 2004 (UTC) ==Library list links== The library list contains some links to completely irrelevant articles like stream (chiefly about moving water) and token (a disambiguation page) that should be renamed to their appropriate computer counterparts. User:Livajo 19:49, 24 Aug 2004 (UTC) :I had updated about 1 third of the list (with links to manual and checking all wiki-links), saved it, to continue a day or two later. But my changes was reverted by Stevietheman. Why? Because it was partial, or because my work is unwanted? I don't want to finish it, if it is just going to be reverted again. -- User:Myplacedk 22:07, 2004 Sep 2 (UTC) :: I think it would be fair to re-revert Stevietheman's edits if he doesn't give a reason for his reversion. I glanced at the history and I can't see any clear reason to revert.—User:Rparle User_talk:rparle 23:01, Sep 2, 2004 (UTC) :::Reason: There's no point in providing external links there--it's clutter. The wikilinks should point to articles that provide the external links. It's better to trust that the wikilinked articles will provide that info, and if they don't, they will/should eventually. -- User:Stevietheman 23:22, 2 Sep 2004 (UTC) ::::It hink there is a point. For example, the current list mentions the COM-extention, which of course linked to Component object model (AFTER my update). But that article does not mention PHP's implementation of it, of course. The "Direct IO" extention linked to an article about what I/O is, in computer terms. This is also great, but of course, again, the article says nothing about the PHP implementation of it. I think these external links are quite useful, but if I'm the only one... -- User:Myplacedk 05:13, 2004 Sep 3 (UTC) :::::This is an encyclopedia article, not the complete unabridged PHP reference. -- User:Stevietheman 05:30, 3 Sep 2004 (UTC) :: Okay, I agree about clutter but didn't the edits also remove ambiguous links? I would recommend the same edits but without the external links for the reasons given by Stevietheman.—User:Rparle User_talk:rparle 00:44, Sep 3, 2004 (UTC) ::: Yes, the external links was the easy part. The time consuming part of my work was updating the wiki links. I'll re-revert... -- User:Myplacedk 05:13, 2004 Sep 3 (UTC) :::I will agree to any fixes of ambiguous links. I realize that I may have swept away a small degree of goodness in the revert I made. Just don't bring back the external links, please. -- User:Stevietheman 02:53, 3 Sep 2004 (UTC) ::::If the wiki links really isn't more worth to you, it might as just remove all af them, then it shouldn't take more than a couple of minutes to make the complete update. :-/ -- User:Myplacedk 05:13, 2004 Sep 3 (UTC) :::::And I'll revert any such changes that don't make sense. -- User:Stevietheman 05:30, 3 Sep 2004 (UTC) ==Code Example== The article features a poor code example. Control structures are not pointed out, the // comment method could be better placed to show its features. Print and echo do not do the same thing--echo dumps data out immediately to the browser, whereas I think print dumps it when it's finished processing the script. Using echo lots of times is thus not very efficient. Yes, this is an encyclopedia article, not a php reference, but a code example that showed more features of the language would be better appreciated by readers checking out different languages. --User:66.226.249.19 :Feel free to enhance and expand the example. -- User:Stevietheman 20:02, 9 Sep 2004 (UTC) ::I turned it into a 99 bottles of beer -example, trying to demonstrate various structures in it. What do you think? --User:ZeroOne 21:49, 9 Sep 2004 (UTC) :::Looks pretty good, although it could be made to require less width (too much word wrapping) and fix a few errors. I'm too tired to tackle it tonite though. -- User:Stevietheman 06:14, 10 Sep 2004 (UTC) ::::I'm sorry, I'm using 1600x1200 resolution so I really don't know how the lines will wrap with lower resolutions. I tried to account for this but apparently didn't do it well enough. The code sure runs (PHP 4.3.something) so there are no syntactical errors. :p --User:ZeroOne 10:49, 10 Sep 2004 (UTC) :::::Sorry. I didn't necessarily mean syntax errors. -- User:Stevietheman 16:55, 10 Sep 2004 (UTC) :The differences between echo and print are often not well understood, because they are so similar. I often here people say they think there's a specific difference.. that doesn't actually exist. Please see the following, from [http://www.php.net/print php.net's page on print()]: ::http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 :In other words, the difference is that echo can take multiple parameters. This is noticably faster, in my benchmarks, than single quotes concatenated together *OR* double quote interpolation. Regardless, that's not the point... I just wanted to note that there is no such difference. :I've also slightly updated the code example with some minor conventional issues, because most people will agree it looks nicer to put spaces around operators. Additionally, I tweaked the wrapping to look nicer in 800x600, because it was so close. If you disagree, I'm sorry... it can easily be changed back. 99 bottles shouldn't work. The multi-line comment is terminated too early, on the second line: /* * /* ... */ is a comment that can span one or many lines. * This kind of comment does not need stars (*) in the beginning of each line, * but including them is a common practice. // and # are also comments. * They only comment the text that are after them in the same line. They have * no special ending character. * */ Has anyone actually tried these examples out to see if they work? -- User:Phyzome is User talk:Phyzome 21:32, 2005 Mar 18 (UTC) == Parrot (future of php) == I'd put a reference somewhere to possible future directions for the project. For example Lerdorf has declared in an interview they could take in account Parrot virtual machine as a possible basis for future releases. Also the licence type is not even indicated, nor the disputes about it. And history part, besides being a bit poor in my opinion, seems to overstate the role of Zend contribution. It's sure relevant but after all is a collaborative effort. ciao --User:Balubino 18:07, 14 Sep 2004 (UTC) Here's some reference. Rasmus [http://www.technetra.com/Writings/recent/interview_lerdorf_html/view interview] at Linux Bangalore meeting where he cites the convenience of using the parrot engine and why they are thinking about it. Then an [http://www.oracle.com/technology/pub/articles/php_experts/rasmus_php.html article] again by Rasmus which describes the beginning of the project and also the plans for the future. Finally [http://it.php.net/history php.net]'s history page in user manual. ciao --User:Balubino 18:31, 14 Sep 2004 (UTC) == Coding standard? == Personally, I think the link just added, named "PHP Coding Standard", to be... not neccessarily so official. If I were new to PHP, I might think that was official with its name. I don't know what to name it otherwise, but I just wanted to ask... are things like that allowed? Could I write up a quick guide to PHP (I actually have, a decently-used tutorial on how to install the latest versions of PHP, MySQL, and Apache without the help of packages..) and just stick it on there, with a name like ''The Ultimate Guide to Life, the Universe, and Installation'' :P? -[[User:Unknown W. Brackets|[Unknown]]] 19:49, Oct 16, 2004 (UTC) :You might seriously consider contributing it to Wikibooks. --User:Phil Boswell | User talk:Phil Boswell 10:02, Oct 18, 2004 (UTC) ::Perhaps so... but, my primary concern here is simply that I'm not so sure this article (PHP) is meant to be a respository of "unofficial" documents like one proclaiming itself to be the "[http://www.dagbladet.no/development/phpcodingstandard/ PHP Coding Standard]". Indeed, many of the function names built into PHP "violate" this supposed standard... -[[User:Unknown W. Brackets|[Unknown]]] 16:30, Oct 18, 2004 (UTC) :::So... I guess it's staying? Can it at least be given a different name, such as "Unofficial..." or "A common..."? -[[User:Unknown W. Brackets|[Unknown]]] 09:49, Oct 27, 2004 (UTC) == PHP development == Following the recent "tidying" exercise, would it be an idea to move the sections on application frameworks and integrated development environments to a new PHP development article? --User:Phil Boswell | User talk:Phil Boswell 14:08, Oct 20, 2004 (UTC) == New criticisms? == Global variables such as $_GET, for retrieving information from the URL, could cause problems as users could manipulate poorly written code to make the website not function as intended by the author. And why is this? Did you know that I could manipulate argv such that poorly written C programs would fail? I could also manipulate the input variables for Perl programs on the query string or in POST data such that poorly written Perl programs would fail. And, why does global make them more fallable? Simply because you were taught global is bad in school? Sorry, but I just don't see how that is a concern at all. The register_globals one is indeed a concern, and so is the fact that by default, users are not "jailed" into a certain directory. Another concern is that, on most systems, PHP runs as nobody, often meaning that files have to be writable by everyone for things to function properly. But... superglobals such as $_GET? Security holes? How? -[[User:Unknown W. Brackets|[Unknown]]] 09:48, Oct 27, 2004 (UTC) :As of PHP version 4.2.0 register_globals defaults to ''off'' (including version 5.x). I think the point is an old one and should be removed. ::I still think this criticism is about as worthwhile on the page as any "glowing terms" are, or any of the horde of external links. They should all three be gone, and only the correct stuff left. Sigh. ::However, the register_globals issue is a huge thing. I began work on YaBB SE back two years ago on Christmas, and not long after they had a huge cross-site scripting security vulnerability. It only worked, of course, on register_globals servers... and 4.3.0 either had just come out or came out soon after... but, well, it was still a problem for 99% of the people using YaBB SE. It was also in previous versions, not just the new release, and caused quite a scare. I remember writing up packages to easily fix the bug... but, the damage was done and many many people were hacked. ::The point of my dumb little story is that it's still a problem, and I expect it will be for some time. Last time I used osCommerce, it didn't work without register_globals on... and, there are even more less professional scripts out there, and tutorials on scripting, that all pretend register_globals is always on, and is a part of PHP. Because of this... hosts oblige; it is a standard feature of PHP now, simply because nearly every server on the Internet that has PHP installed also has register_globals enabled. And error_reporting set to 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:

P

PA | 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
encyklopedia online