PHP

Da Wikipedia, a enciclopedia libre.
Ir á navegación Ir á busca
Nota de desambiguación.svg Homónimos - Se está á procura de outros significados, vexa PHP (disambiguation) .
PHP
linguaxe de programación
PHP-logo.svg
Autor grupo PHP
Data de orixe 8 de xuño de 1995
Última versión 8.1.0 Beta 1 (22 de xullo de 2021) e 8.0.9 (29 de xullo de 2021)
Uso aplicacións web server-side
Paradigmas Imperativo , funcional , orientada a obxectos , procesual , reflexión
Mecanografía feble
Extensións comúns php
Influenciado por C ++ , Perl , C , Java , Tcl , HTML e JavaScript
Implementación de referencia
implantación Intérprete
Sistema operativo Multiplataforma
Licenza licenza PHP
Páxina web www.php.net

PHP ( un acrónimo recursivo para "PHP: Hypertext Preprocessor", hipertexto pre-procesador ; orixinalmente acrónimo para "Personal Home Page" [1] ) é unha interpretado linguaxe de script , orixinalmente concibido para a programación de páxinas web dinámicas . O intérprete PHP é software libre distribuído baixo a licenza PHP [2] .

Actualmente é usado principalmente para desenvolver no lado do servidor de aplicacións web , pero tamén pode ser usado para escribir liña de comandos de guións ou aplicacións stand-alone cunha interface gráfica . Un exemplo de programa escrito en PHP é MediaWiki , que Wikimedia Foundation wiki proxectos como Wikipedia están baseados .

Antecedentes

Nacido en 1994 polo danés Rasmus Lerdorf , PHP foi orixinalmente unha colección de CGI scripts que permitiron fácil manexo de páxinas persoais. Segundo o anuncio orixinal de PHP 1.0 polo autor no grupo de noticias comp.infosystems.www.authoring.cgi significado orixinal da sigla foi P ersonal H ome P idade. [3]

O paquete orixinal foi máis tarde estendido e reescrito por Lerdorf-se en C , engadindo funcionalidades como soporte para o mSQL base de datos, e comezou a ser chamado PHP / FI, onde FI significa F ORM I nterpreter (intérprete forma), proporcionando a posibilidade de integrar o código PHP no HTML código, a fin de simplificar a creación de páxinas dinámicas. En 1997, estímase que preto de 50.000 sitios foron baseados en PHP. [4]

A lingua comezou a gozar dalgunha popularidade entre código aberto web proxectos e así foi notado por Zeev Suraski e Andi Gutmans , dous mozos programadores. Os dous colaboraron en 1998 con Lerdorf no desenvolvemento da terceira versión do PHP, cuxa siglas asumiu o seu significado actual, reescribir o motor que foi bautizado Zend dunha contracción dos seus nomes. As principais características do PHP versión 3.0, froito do seu traballo, foron a extensibilidade extraordinaria, a conectividade co banco de datos eo apoio inicial ao paradigma obxecto [5] . Ata finais de 1998, PHP 3.0 instalouse en aproximadamente o 10% dos servidores web en Internet.

PHP neste momento converteuse maduro o suficiente para competir coas linguaxes do lado do servidor, como ASP , desenvolvido por Microsoft , e comezou a ser usado en grande escala. A versión 4 PHP foi lanzado en 2000 e contou con melloras significativas [6] .

A última versión dispoñible é 8.0.8 [7] , desenvolvido por un equipo de programadores, que inclúe de novo Lerdorf, Suraski e Gutmans. [8]

A popularidade da linguaxe PHP está en constante crecemento grazas á súa flexibilidade: en xuño de 2001 que superou o millón de sitios que utilizan. Desde outubro de 2002 máis do 45% de Apache servidores foron usando PHP [9] .

En 2004 era un dos principais idiomas cos que Facebook foi creado.

En xaneiro de 2005 foi premiado co título de "Linguaxe de programación de 2004" pola TIOBE Programming Índice Comunidade [10] , unha valoración que avalía a popularidade de linguaxes de programación en base a información recollida por buscadores .

En 2005, o LAMP configuración ( Linux , Apache , MySQL , PHP) superou os 50% do número total de servidores na rede mundial.

En 2008 PHP 5 tornouse a única versión estable en desenvolvemento. Comezando con PHP 5.3.0 os implementos lingua unha función chamada "conexión estática tardía", que se pode usar para referirse á clase chamada nun contexto herdanza estática.

A partir de 5 de febreiro de 2008, debido á iniciativa GoPHP5 apoiado por un número de desenvolvedores PHP, dos proxectos de código aberto de alto perfil deixar de apoiar PHP 4 no novo código e promover a transición do PHP 4 ao PHP 5. [ 11]

PHP versión 5 alcanzado liberación 5,6 antes de ser lanzada dun desenvolvemento e soporte punto de vista, en xaneiro de 2019. Versión 7 foi lanzado en 3 de decembro de 2015 e aínda está en desenvolvemento e apoiou activamente [12] .

Versión 8 foi lanzado en 27 de novembro de 2020.

Grazas principalmente á propagación do WordPress [13] (CMS escrito en PHP), segundo as estatísticas, é a linguaxe do lado do servidor usado máis no mundo [14] [15] [16] .

características

PHP ocupa de moitas maneiras a sintaxe do C , como fan moitas linguas modernas, e Perl . É un feblemente tipado linguaxe e da versión 5 que mellora o soporte para o obxecto orientado programación paradigma. Certas construcións derivadas C, como entre operadores anacos ea xestión de cadeas como matrices , nalgúns casos, permitir que actúan a un nivel baixo; Con todo, é fundamentalmente unha linguaxe de alto nivel , unha característica reforzada pola existencia de seus máis de 3.000 núcleoAPI funcións.

PHP é capaz de interactuar con moitas DBMS incluíndo MySQL , PostgreSQL , MariaDB , Oracle , Firebird , IBM DB2 , Microsoft SQL Server e mesmo NoSQL bases de datos como MongoDB. Soporta varias tecnoloxías como XML , XABÓN ,IMAP , FTP , CORBA . Tamén se integra con outras linguaxes / plataformas como Java e .NET e hai un invólucro para todas as bibliotecas populares, como CURL, GD , gettext , GMP, Ming, OpenSSL e moito máis.

Ofrece unha específicaAPI para interactuar con Apache , aínda que, naturalmente, traballa con outros servidores web . Tamén está moi ben integrado co MySQL DBMS para o cal ten máis dunha API (MySQL, mysqli, DOP). Por esta razón, hai unha enorme cantidade de PHP guións e bibliotecas dispoñibles gratuitamente en Internet . Versión 5 integra un pequeno banco de datos incorporado, SQLite .

Ten un arquivo chamado PERA que ofrece unha reutilizables biblioteca estrutura para desenvolvemento de PHP e aplicacións PECL que recolle todas as extensións coñecidas escritos en C.

PHP non ten soporte nativo para Unicode ou varios bytes cordas; soporte a Unicode está en desenvolvemento para unha futura versión de PHP e permitirá caracteres non ASCII para ser usado en cordas e nomes de funcións, clases e métodos.

Seguridade

A porcentaxe de software inseguro escrito en PHP, do total de todos os fallos de seguridade no software da lista polo Common Vulnerabilities and Exposures , ascendían a: 12% en 2003, o 20% en 2004, o 28% en 2005, o 43% en 2006, 36% en 2007, 34,8% en 2008, 29,9% en 2009 e 27,2% en 2010 [17] . Case todas estas vulnerabilidades coñecidas orixinan de non-conformidade co as mellores prácticas por programadores e dos abusos relacionados de características particulares ofrecidos polo PHP que en certos usos dan orixe a vulnerabilidades serias. Un exemplo ben coñecido son os problemas relacionados co abuso de rexistrar globais e Magic Quotes, dispón que, se usa incorrectamente pode dexenerar en reais backdoors dentro do seu programa PHP. Para evitar problemas deste tipo, moitas destas características foron gradualmente preterido ou mesmo eliminados, como os dous mencionados, na sucesión de versións de PHP [18] [19] .

A maioría do software con problemas de seguridade (2006) pode ser temporalmente asociado con versións antigas de PHP, onde a configuración por defecto deixou espazo para unha relativa simplicidade en escribir software con problemas de seguridade potencialmente graves.

É sempre unha boa idea revisar a configuración do PHP, xeralmente contido no ficheiro php.ini, para comprobar que recursos están activados. Normalmente no mesmo ficheiro que está documentando 3 tipos de configuracións: configuración de PHP estándar, configuración nun ambiente de desenvolvemento que permite, por exemplo, para ver os erros e configuración de vídeo en un ambiente de produción en que, normalmente, os erros son gravados nun ficheiro de rexistro.
A web oficial contén o arquivo histórico dos descontinuadas versións , actualizada maio 2019 [20] .

ataques de hackers

PHP pode ser suxeito a varios ataques de hackers [21] :

  • Execución remota de código (RCE) ocorre cando un dianteiro é capaz de subir código para o sitio web e executalo.
  • Inxección de SQL ou SQLi: permite aos crackers parodia identificar , modificar datos existentes, cuestións repudio causa como cancelación de transaccións ou modificar estados financeiros, permite a obtención de todos os datos no sistema, eliminar ou datos fan inaccesibles, e crear ou usuarios do servidor de base de datos compromiso.
  • Cross-sitio Scripting (XSS) ocorre cando un dianteiro fai que un código malicioso a carga no navegador do visitante do sitio web e executalo. Este código pode entón realizar accións maliciosas como roubar as cookies do usuario.
  • Cross-sitio Request Forgery (CSRF): Ocorre cando un atacante pode Enlazar e ten un usuario privilexiado prema nel para crear (por exemplo) un novo usuario "admin" cun contrasinal que saben.
  • desvío de autenticación. Un xeito este erro foxe é a través dun erro de desenvolvedor cando se utiliza a función chamada 'is_admin ()' para validar un administrador. Esta característica é realmente deseñado para mostrar se alguén está a ver unha páxina de administración e non válida que realmente son. Un creador fai este erro, poden conceder acceso a usuarios non-administrador de recursos que só os administradores teñen acceso.
  • A inxección de PHP obxectos. Ocorre cando unha aplicación PHP recibe a entrada de usuario e transmítese a para unha función chamada 'unserialize ()', que leva un obxecto ea transforma almacenado nun obxecto en memoria.
  • Remoto e local Inclusión de ficheiros (RFI e LFI). Cando un programa PHP acepta entrada do usuario e pasa a unha función deseñado para cargar un ficheiro. Se este ficheiro é un URL, a función pode cargar código PHP doutro sitio especificado por un atacante que ha executar na web xunto. As funcións que poden ser susceptibles de RFI e LFI en PHP son: incluír, include_once, fopen, file_get_contents, requiren, require_once.

Exemplos de código

Variables

Os nomes de variables en PHP sempre comezan cunha cifrão ( $ ) ea próxima personaxe non ten que ser un número, por exemplo $1 ou $2 non son nomes de variables válidos.

Os nomes das variables son case-sensitive , é dicir, $pippo e $PIPPO $pippo son dúas variables distintas.

Unha variable pode conter todos os caracteres AZ , az , 0-9 e _ . Xa definidos son instanciado sen definir explicitamente a súa "type":

 Ola $ = "mundo Ola!" ;

Para ver o contido da $ciao , pode utilizar o echo declaración:

 echo $ Ola;

mostrando " Ciao mondo! ". Con todo, se o $ciao variable non existir, echo , en xeral, xeran un erro Non-fatal ( Notice ).

cordas

No PHP unha secuencia de caracteres alfanuméricos represéntase de dous xeitos: colocándose o entre comiñas ( " ) ou simple ( ' ) Usando comiñas dobres, caracteres especiais son interpretados (por exemplo, a guía ,. "col1 \t col2" ou o carácter de nova liña, "riga1 \n riga2" ) e os contidos das variables obtidos, é dicir:

 echo "Hola é: Ola $";

Press: "Ciao vale: Ciao mondo!" . Con aspas a cadea arquivados e utilizada como está.

Exemplo de compoñer a frase "Wikipedia é marabilloso" de dous xeitos: mediante comiñas simples e dobres:

 $ One = 'Wikipedia'
$ Two = 'é'
$ Tres = 'marabilloso'

echo $ un. ''. $ Dous. ''. $ Tres;
echo "$ un $ dous $ Tres ";

Array (e foreach)

PHP trata matrices como mapas asociativos , é dicir, como unha lista de chaves asociadas exclusivamente cun determinado valor. Matrices no PHP pode, polo tanto, pode empregar como unha matriz común, como unha lista (vector), pila, cola ou outro. Ademais, calquera elemento da matriz pode, á súa vez conter outros arranxos, mesmo multidimensional [22] e todos os elementos da matriz ou sub-matrices poden ser de distintos tipos de variables, dando así a posibilidade de crear estruturas de datos complexos.

As matrices son dinámicas, de feito poden ser eliminados mediante unset(); [23] .

Desde matrices en PHP son asociativos, poden ser empregados por medio dunha construción chamada foreach [24] o que fai o acceso ao contido viable, obtendo todas as teclas individuais → valor da matriz.

Exemplo código dunha matriz asociativa no que cada nome de cidade corresponde ao número de habitantes. O exemplo demostra cada cidade co seu número de habitantes e, a continuación, a suma de todos os habitantes.

 <? Php
$ Residentes = matriz (
	'Turín' => 908.551,
	'Milán' => 1315791,
	'Roma' => 2753000
);

$ Sum = 0;

foreach ($ residentes como $ city => $ nResidents) {
	echo "Cidade $ cidade habitantes $ nResident";
	$ Sum + = $ nResident;
}

echo "Hai $ habitantes suma de todo!" ;
>

A saída do código é: La città Torino ha 908551 abitanti. La città Milano ha 1315791 abitanti. La città Roma ha 2753000 abitanti. In tutto ci sono 4977342 abitanti

Para máis información, consulte o oficial en liña documentación [22] .

Funcións

Funcións en PHP pode ter un conxunto mixto de parámetros opcionais con valores por defecto e parámetros necesarios. [25]

Exemplo dunha función cun parámetro obrigatorio e un opcional cun valor por defecto.

 <? Php 
/ **
* Programa corre
* A suma de polo menos 2 números
Correo máximo tres
* /
suma function ($ n1 = 0, $ N2 = 0, $ N3 = 0) {
	voltar $ n1 + N2 + $ $ N3;
}

suma de eco (1, 5); // output: 6
suma de eco (1, 24); // output: 25
suma de eco (3, 4, 2); // output: 9
suma de eco (n1 5, N3: 5); // output: 10 -> utilizable desde a versión 8

>

Calquera variable de calquera tipo creado dentro da función é local. Para especificar as variábeis globais no uso da función global $variabile [26]

Exemplo:

 <? Php
experimento función () {
	Global de US $ a;
	$ A = "tres",
	$ B = "catro";
	echo "Durante: $ a $ B ";
}

$ A = "un";
$ B = "dous";

echo "Antes: $ a $ B ";
probar ();
echo "Despois: $ a $ B ";
>

O resultado será: Prima uno due Durante tre quattro Dopo tre due .

inclusións

Pode incluír unha páxina PHP dentro doutro para executar un código para evitar código redundante e variables de acceso, funcións e clases definidas na páxina incluída.

Para iso, utiliza unha das seguintes afirmacións: include [27] , include_once [28] , require [29] e require_once [30] . Exemplo:

 <? Php
inclúe 'header'
echo "Ola, mundo!" ;
inclúe 'footer.php'
>

Tipos de inclusión:

  • Se usa include cando quere enviar só un sinal de alerta, sen interromper a execución do programa, se a páxina a ser incluída non existe.
  • Usan require cando queremos un sinal de erro grave a ser enviado eo programa a ser abortada a páxina para incluír non existe.
  • Usa include_once , require_once cando a orde podería repetirse varias veces, mesmo en arquivos diferentes, creando así (potencialmente) un recursiva inclúen, pero non quere que a páxina a ser incluído máis dunha vez. Se a páxina a ser incluída non existe, se comportan de forma semellante aos seus as mencionadas enriba.

xestión de parámetros

PHP permite o paso de información a partir dunha páxina a outra a través das diversas funcións soportadas polo HTTP . En concreto, get solicitudes (información parametrizada na barra de enderezos), POST (información procedente dun anterior enviar a partir dun formulario web, xeralmente) e galletas (información contida en pequenas cadeas de texto fisicamente gardados na memoria local dun navegador), en conxunto con sesión de soporte (función baseada no uso de cookies). Esta información pode ser usada en PHP través de catro asociativas matrices chamado internamente: $ _GET, $ _POST, $ _COOKIE, $ _SESSION. Estes tipos de matrices son chamados superglobals [31] Isto é, son visibles en cada ámbito do programa.

Exemplo de tratamento dun parámetro GET. Solicitude de mostra: http://example.org/esempio.php?pippo=Ciao . Contido do laws.php (mostrará "Ola"):

 <? Php
/ *
* Asegúrese de que o parámetro "Foo" foi recibido a través do método GET.
* Se é posible, eu amosar-lo; se non é detectado I avisar o usuario.
* /

if (isset ($ _GET [ 'foo'])) {
	$ A = $ _GET [ 'foo']; // Gardar o parámetro "Foo" variábel $ a

	$ = Un htmlentities ($ a); // Isto "desarma" calquera contido HTML contido en $ a

	echo $ a; // Eu amosar na pantalla
} máis {
	echo "Non parámetro chamado foo atopados. Ten que envialo" ;
}
>

Unha función de control do parámetro

 <? Php
función get_hello_world ($ value1, value2 $) {
	$ Result = ''

	/ *
* No PHP o "si" control, se contén só unha instrución,
* Tamén non pode ter chaves de contención
*, Pero é unha boa idea sempre usalos, para facilitar a lectura do código.
* /
	if ($ value1! = '') {
        	$ Result = $ value1 .; // equivalente a: $ result = $ result. $ Value1;
	}

	if (($ value1! = '') && ($ valor2! = '')) {
		$ Result = "";
	}

	/ *
* Empty ($ valor2) é equivalente a: $ valor2 = ""
* O "punto de exclamación" se usa para negar un valor booleano
* /
	if (! empty ($ valor2)) {
		$ Result = $ valor2 .; // equivalente a: $ result = $ result. $ Valor2;
	}

	voltar $ result;
}

echo get_hello_world ( 'Ola', 'mundo');
>

O bucle

 <? Php
/ *
* Neste caso, a variable $ n é impresa na pantalla, subsecuentemente
* É incrementado por 1, os extremos do lazo cando n é igual a 9 $ (as contas do lazo 0-9 logo 10 veces).
* /

for ($ n = 0; $ n <= 9; $ n ++) {
     echo $ n;
}

// Output -> 0123456789
>

O bucle mentres

 <? Php
/ *
* Neste caso, imos ver como imprimir os resultados extraídos na pantalla
* Desde unha base de datos MySQL, executando unha consulta SQL.
* Este script é incompleta, xa que é necesario primeiro realizar
* Conexión a base de datos MySQL vía mysqli ou DOP.
* /

$ Result = $ mysqli -> query ( "id SELECT FROM persoas");

while ($ liña = $ result -> fetch_assoc ()) {
	echo $ row [ 'id']. "<br />";
}

/ *
* Desta forma, extraer datos de base de datos MySQL
* Baixo a forma dunha matriz, que será, a continuación, ser impreso a través dun circuíto, mentres
* /
>

99 botellas de cervexa

O exemplo a seguir imprime as letras das cancións 99 botellas de cervexa .

 <? Php
/ *
* Este é un comentario. Outras formas de comentario son os símbolos // e #
* Este tipo de comentario non precisa asteriscos (*) no inicio
* De cada liña, pero isto está feito por convención. O símbolos // e #
* Comentario sobre o texto que está detrás deles e ata o final da liña;
* Non é necesario acabar co comentario con calquera caracteres especiais.
* /

/ *
* Primeiro definimos unha función chamada "plural".
* Volta un "S" o argumento pasado non é 1.
* /
plural función ($ number) {
	// O operador ternário (! =? :) é unha estrutura condicional
	// semellante a if-else: (condición verdadeira :? False)
	Return ($ number! = 1)? 'S': ''
}

// Definimos unha variable chamada $ a_capo que contén un retorno HTML,
// unha volta e un carácter de nova liña:
$ A_capo = "<br /> \ r \ n";

for ($ i = 99; $ i> 0; $ i -) {
	echo "$ i botella". plural ($ i). "De cervexa na parede, $ a_capo";
	// Non necesitamos repetir o comando echo para cada liña:
	echo "$ i botella". plural ($ i). "De cervexa. $ A_capo
Tomé un abaixo, pasalo ao redor, $ a_capo ".
	(!? (($ I - 1) = 0) $ i - 1: 'Non máis').
	'Botella ". plural ($ i - 1). "De cervexa na parede $ a_capo $ a_capo.";
	/ *
* PHP permite que cree cordas en varias liñas, sempre que
* Busca un punto e coma (;) que remata o comunicado.
* Un período (.) Concatena múltiples cadeas xuntos.
* As variables, comezando co carácter "$", interprétanse
* Tamén citas dentro dobres ( "), pero non dentro comiñas simples ( ').
* Chat, como plural (), non son interpretados entre comiñas.
* /
}
echo "ir ata a tenda, $ a_capo mercar un pouco máis, $ a_capo 99 botellas de cervexa na parede!" ;
>

Exemplo de conexión coa base de datos MySQL usando a extensión MySQL

PHP permite o procesamento de datos de bases de datos MySQL. Os datos serán solicitados, inserido e modificado mediante consultas apropiadas usando algunhas extensións incluíndo MySQLi e DOP. [32]

O MySQLi extensión, onde o "i" significa "mellorado", foi facilitado para PHP para aproveitar algunhas novas facilitadas polas versións de MySQL versión 4.1.3 e posterior e está dispoñible para PHP 5 e versións superiores .

Exemplo de conexión a base de datos e solicitude de datos:

 <? Php
// Connect to MySQL coa extensión MySQLi
$ Mysqli = new mysqli ( 'localhost', 'nome_utente_database', 'password_database', 'database_name');

/ *
* Esta é a forma oficial para comprobar se unha conexión MySQL fallou,
* MAS $ connect_error non está soportado ata PHP 5.2.9 e 5.3.0.
* /
if ($ mysqli -> connect_error) {
    Die ( "A conexión fallou, razóns:" $ mysqli -> connect_error.);
}

// Imos probar unha consulta asumindo que estamos a procesar datos dun libro-address semellante:
$ SQLQuery = $ mysqli -> query ( "enderezo SELECT, teléfono dos usuarios ONDE name = 'Frank'");

// Desde esta consulta, imos obter o enderezo eo número de teléfono da persoa chamada Francesca,
// asumindo que está presente na táboa de usuarios da base de datos en cuestión.

// Agora imos "transformar" os datos recibidos a partir da consulta nunha matriz asociativa que se pode usar máis tarde
$ Row = $ SQLQuery -> fetch_assoc ();

// Nós amosar na pantalla, por exemplo, o número de teléfono a partir da matriz
echo "número de teléfono de Francesca é:". $ Row [ 'teléfono'];

// Pechando a conexión coa base de datos
$ Mysqli -> close ();
>

Para máis información, consulte o MySQLi oficial manual en liña. [33]

php.ini

O ficheiro PHP configuración, chamado php3.ini no PHP 3, e simplemente php.ini en versións posteriores, é lido cando o intérprete de linguaxe iníciase e ofrece a configuración dos distintos módulos que o intérprete foi compilar. Na versión servidor modular de PHP, iso só acontece unha vez, cando o servidor web iníciase . Aos CGI e CLI versións, con todo, é invocado cada solicitude.

Para ver todas as opcións de configuración que pode usar o phpinfo() función.

Versións

Versión Data de lanzamento soportado ata
1.0 8 de xuño de 1995
2.0 1 de novembro de 1997
3.0 6 de xuño de 1998 20 de outubro de 2000
4.0 22 de maio de 2000 23 de xuño de 2001
4.1 10 de decembro de 2001 12 de marzo do 2002
4.2 22 de abril de 2002 6 de setembro de 2002
4.3 27 de decembro de 2002 31 de marzo de 2005
4.4 11 de xullo de 2005 7 de agosto de 2008
5.0 13 de xullo de 2004 5 de setembro de 2005
5.1 24 de novembro de 2005 24 de agosto do 2006
5.2 2 de novembro de 2006 6 de xaneiro de 2011
5.3 30 de xuño de 2009 14 de agosto de 2014
5.4 1 de marzo de 2012 3 de setembro de 2015
5.5 20 de xuño de 2013 10 de xullo de 2016
5.6 28 de agosto de 2014 31 de decembro de 2018
6.x Non ten permiso N / A
7.0 3 de decembro de 2015 3 de decembro de 2018
7.1 1 de decembro de 2016 1 de decembro de 2019
7.2 30 de novembro de 2017 30 de novembro de 2020
7.3 6 de decembro de 2018 6 de decembro de 2021
7.4 28 de novembro de 2019 28 de novembro de 2022
8.0 26 de novembro de 2020 26 de novembro de 2023
8.1 ?? Novembro de 2021 ?? novembro 2024

A comparación con ASP.NET

PHP é un competidor directo do ASP.NET. A elección das dúas linguas ten pros e contras de acordo coas súas necesidades [34] [35] :

PRO CONTRA
PHP ASP.NET PHP ASP.NET
É de código aberto polo que é gratuíto e está constantemente a ser mellorado por un gran número de persoas, en vez de unha única empresa Soporta todas as linguaxes de programación e funciona ben con aplicacións ou C # Non é adecuado para a construción de aplicacións de escritorio Menos doado de aprender e comprender que PHP
Existen grupos de apoio máis en liña para axudar a acelerar o proceso de aprendizaxe do que ASP.NET Notificar programadores se eles cometeron erros na codificación antes de compilar tratamento de erros PHP é considerada baixo comparado con ASP.NET, polo que pode levar máis tempo para descubrir un problema Menor apoio da comunidade
Máis fácil de aprender e comprender que ASP.NET El vén con moitas ferramentas e recursos para programadores de apoio. Permite a personalización que causa erros e mala codificación comparación con ASP.NET Só funciona nun servidor Microsoft
Tamén funciona en Linux servidores creación de aplicacións Desktop. Ser Open Source, o código está ao alcance de todos e é, polo tanto, máis expostos a ataques Máis caro debido á Microsoft licenza

ámbitos de desenvolvemento

Nota

  1. ^ O Grupo PHP A Historia de PHP e proxectos relacionados , en it.php.net. Traído 26 de abril de 2011 ( arquivada 28 de xaneiro de 2021).
  2. ^ PHP: Información de licenza , polo www.php.net. Consultado o 28 de febreiro de 2020 .
  3. ^ Anuncian: Personal Home Page Tools (Ferramentas PHP) , no groups.google.ch, 8 de xuño de 1995. Recuperado 06 xullo de 2011.
  4. ^ (EN) e Marko Gargenta Ellie Quigley, PHP e MySQL por exemplo , Prentice Hall Professional, 22 de novembro de 2006, ISBN 978-0-13-800602-0 . Consultado o 28 de febreiro de 2020 .
  5. ^ PHP: PHP versión 3 Documentación , polo www.php.net. Consultado o 28 de febreiro de 2020 .
  6. ^ Web hosting Services, Servidores VPS e nomes de dominio por NTC hosting , polo www.ntchosting.com. Consultado o 28 de febreiro de 2020 .
  7. ^ (EN) PHP: Novas Arquivo - 2021 , en be2.php.net. Recuperado 04 xullo de 2021.
  8. ^ (EN) PHP: Credits , no secure.php.net. URL consultato il 26 settembre 2017 .
  9. ^ Usage Statistics and Market Share of PHP for Websites, February 2020 , su w3techs.com . URL consultato il 28 febbraio 2020 .
  10. ^ TIOBE Software Award , su tiobe.com .
  11. ^ GOPHP5! , su pear.php.net . URL consultato il 26 settembre 2017 .
  12. ^ PHP: Releases , su www.php.net . URL consultato il 28 febbraio 2020 .
  13. ^ WordPress Usage Statistics , su trends.builtwith.com . URL consultato il 30 gennaio 2021 .
  14. ^ ( EN ) Most used languages among software developers globally 2020 , su Statista . URL consultato il 30 gennaio 2021 .
  15. ^ Usage Statistics and Market Share of Server-side Programming Languages for Websites, January 2021 , su w3techs.com . URL consultato il 30 gennaio 2021 .
  16. ^ Confronto tra CMS nel 2021: i sistemi più popolari per la gestione dei contenuti , su IONOS Digitalguide . URL consultato il 30 gennaio 2021 .
  17. ^ PHP-related vulnerabilities on the National Vulnerability Database , su coelho.net . URL consultato il 6 luglio 2011 .
  18. ^ Register Globals deprecato e rimosso da PHP 5.4.0
  19. ^ Magic Quotes deprecato e rimosso da PHP 5.4.0
  20. ^ ( EN ) Archivio storico delle versioni non più supportate , su php.net . URL consultato il 15 maggio 2019 ( archiviato il 12 novembre 2006) .
  21. ^ ( EN ) What are PHP Vulnerabilities & How Do They Originate? , su Wordfence . URL consultato il 28 gennaio 2021 ( archiviato il 29 gennaio 2021) .
  22. ^ a b Manuale PHP - array , su it2.php.net . URL consultato il 14 marzo 2018 (archiviato dall' url originale il 15 marzo 2018) .
  23. ^ PHP: unset - Manual , su www.php.net . URL consultato il 17 ottobre 2020 .
  24. ^ PHP: foreach - Manual , su www.php.net . URL consultato il 17 ottobre 2020 .
  25. ^ Default Function Parameters In PHP | #! code , su www.hashbangcode.com . URL consultato il 17 ottobre 2020 .
  26. ^ PHP: Variable scope - Manual , su www.php.net . URL consultato il 17 ottobre 2020 .
  27. ^ Manuale PHP - include
  28. ^ Manuale PHP - include_once , su it2.php.net . URL consultato il 31 gennaio 2014 (archiviato dall' url originale il 1º febbraio 2014) .
  29. ^ Manuale PHP - require , su it2.php.net . URL consultato il 31 gennaio 2014 (archiviato dall' url originale il 1º febbraio 2014) .
  30. ^ Manuale PHP - require_once , su it2.php.net . URL consultato il 31 gennaio 2014 (archiviato dall' url originale il 1º febbraio 2014) .
  31. ^ PHP: Superglobals - Manual , su www.php.net . URL consultato il 17 ottobre 2020 .
  32. ^ PHP: Database Extensions - Manual , su www.php.net . URL consultato il 17 ottobre 2020 .
  33. ^ MySQLi:query , su it2.php.net . URL consultato il 29 gennaio 2014 (archiviato dall' url originale il 1º febbraio 2014) .
  34. ^ ( EN ) PHP vs ASP.NET: Top Differences for Beginners' Understanding , su Appinventiv , 28 settembre 2018. URL consultato il 30 gennaio 2021 .
  35. ^ ( EN ) Varun Bhagat, ASP.Net vs PHP: Which is Better? , su PixelCrayons , 8 ottobre 2019. URL consultato il 30 gennaio 2021 .

Bibliografia

  • Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch (2002): PHP Functions Essential Reference , Sams, ISBN 0-7357-0970-X
  • Luke Welling, Laura Thomson (2004): PHP and MySQL Web Development , 3rd ed., SAMS, ISBN 0-672-32672-8
  • Matt Zandstra (2004): PHP 5 Objects, Patterns, and Practice , Apress, ISBN 1-59059-380-4
  • Eric Rosebrock, Eric Filson (2004): Setting Up LAMP: Getting Linux, Apache, MySQL, and PHP Working Together , SYBEX, ISBN 0-7821-4337-7
  • Cristian Darie, Mihai Bucica (2004): Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional , Apress, ISBN 1-59059-392-8
  • David Powers (2005): Foundation PHP 5 for Flash , Friends of ED, ISBN 1-59059-466-5
  • Elizabeth Naramore, (2005): Beginning PHP5, Apache, and MySQL Web Development , Wrox, ISBN 0-7645-7966-5
  • Thomas Myer (2005): No Nonsense XML Web Development With PHP , SitePoint , ISBN 0-9752402-0-X
  • Marc Wandschneider (2005): Core Web Application Development with PHP and MySQL , Prentice-Hall, ISBN 0-13-186716-4
  • Steven Holzner (2005): Spring Into PHP 5 , Addison-Wesley, ISBN 0-13-149862-2
  • (2005): Building Online Communities with phpBB 2 , Packt Publishing, ISBN 1-904811-13-2
  • (2005): Web Standards Programmer's Reference: HTML, CSS, JavaScript, Perl, Python, and PHP , Wrox, ISBN 0-7645-8820-6
  • Chris Newman (2005): Sams Teach Yourself PHP in 10 Minutes , ISBN 0-672-32762-7
  • Paul Hudson (2005): PHP in a Nutshell , O'Reilly, ISBN 0-596-10067-1
  • Andi Gutmans, Stig S. Bakken, Derick Rethans (2005): PHP 5: Guida completa , Apogeo, ISBN 88-503-2304-2
  • Jack Herrington (2006), PHP Trucchi e segreti , Tecniche Nuove Hops, ISBN 88-481-1951-4
  • Rasmus Lerdorf (2003), PHP Pocket Reference , Tecniche Nuove Hops, ISBN 88-8378-070-1
  • Peter B. MacIntyre (2010), PHP – Le tecniche per scrivere il codice migliore , Tecniche Nuove, ISBN 978-88-481-2505-5

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autorità LCCN ( EN ) sh99002710 · GND ( DE ) 4546126-0 · BNF ( FR ) cb135584386 (data) · BNE ( ES ) XX548742 (data)