Академический Документы
Профессиональный Документы
Культура Документы
[+++]
Qu es PHP?
PHP es un lenguaje de programacin orientado a aplicaciones web, conocidas como paginas dinmicas. Sus inciales son el acrnimo de PHP: Hypertext Preprocessor, PHP es multiplataforma, hay versiones para Linux, Unix, Windows 9.x, Windows NT y Macintosh y todas son gratis est diseado para trabajar conjuntamente con el servidor apache pero tambin puede ser corrido en otros servidores como IIS de Microsoft.
Clase 02
Pgina 1 de 16
[+++]
grupo. El analizador sintctico se rescribi desde el principio por Zeev Suraski y Andi Gutmans y este nuevo analizador estableci las bases para PHP versin 3. Mayo de 2000, se public la versin de PHP, PHP4, la cual inclua numerosas novedades. Actualmente 2006 La mayora de los servidores gratuitos trabajan con la versin de PHP5 con esta versin se puede tener acceso a bases de datos de distintos tipos, pero su mejor cobertura es con MySQL. PHP , es un lenguaje interpretado de alto nivel contenido en pginas HTML. La mayora de su sintaxis es similar a C, Java y Perl con solamente un par de caractersticas especificas. La meta de este lenguaje es permitir escribir, paginas dinmicas de una manera rpida y fcil.
3.-De los archivos descomprimidos identificaremos dos los cuales son php.exe y php5ts.dll los copiamos y creamos una carpeta en C llamada PHP (C:\PHP) en ella pegamos los archivos
Clase 02
Pgina 2 de 16
APACHE, PHP y MySQL 4.- Reiniciamos la Computadora. 5.- Configurar el archivo php.ini.
[+++]
Este archivo se encuentra en C:\Servidor\PHP\ con el nombre de php.ini-dist lo que tenemos que hacer es renombrarlo a php.ini Ahora lo editamos con el mismo block de notas. a) Editamos la lnea register_globals = Off y la colocamos el valor: register_globals = On Qu hago con register_globals? ON u OFF? Activar esta directiva nos permite asumir que las variables son globales y pueden llegar por cualquier mtodo (POST, GET, COOKIE, SERVER, etc). As, por ejemplo, si utilizamos una variable global de sesin o cookie se puede suplantar fcilmente mediante una variable por url, con lo cual nuestro script no es seguro. Un buen programador de PHP tendra la directiva en OFF y usara los arrays globales ($HTTP_X_VARS) o los superglobales $_POST, $_GET, etc., que estn disponibles a partir de la versin 4.1.X de PHP. Y por qu? Pues por esos temas de seguridad en los script y porque debemos acostumbrarnos a no manejar variables globales ya que en un futuro el PHP tendr la opcin en OFF por defecto y no podremos cambiarla. Sin embargo, por temas de compatibilidad con script antiguos o que hagan uso de variables globales, podra interesarnos activar esta caracterstica, pero repito que lo deseable sera tenerla en OFF y hacer uso de los arrays globales o superglobales. b) Indicar a PHP dnde se guardan las extensiones. Dentro del php.ini buscamos extension_dir y le ponemos la carpeta que contiene los archivos php_xxx.dll, que por defecto es la carpeta ext dentro de PHP. IMPORTANTE: durante toda la configuracin de directorios, debes utilizar esta barra "/" y no est "\", adems de ponerlo entre comillas. O sea, que debe quedar as: ; Directory in which the loadable extensions (modules) reside. extension_dir = "C:/Servidor/PHP/ext/" IMPORTANTE: la librera php_mysql.dll es la que permite manejar las funciones relacionadas con MySQL, y por defecto en PHP5 viene desactivada, por tanto vamos a activarla de la forma que indicamos antes: buscamos ;#extension=php_mysql.dll y le quitamos el #; de delante. c) Para trabajar con sesiones. Debemos especificar un directorio donde se guarden los archivos temporales. Buscamos session.save_path y le damos el valor de un directorio que exista (o lo creamos): session.save_path = "C:/Servidor/PHP/sessions/"
Clase 02
Pgina 3 de 16
[+++]
6.- A continuacin copiamos el php.ini a la carpeta C:\Windows\ o C:\WinNT\ segn nuestra versin de Windows a) Modificando nuestro httpd.conf Buscamos Dynamic Shared Object (DSO) Support que es donde se cargan los mdulos. Ah vamos a cargar el mdulo de PHP para Apache, dando la direccin del archivo php5apache2.dll # Example: # LoadModule foo_module modules/mod_foo.so # LoadModule php5_module C:/Servidor/PHP/php5apache2_2.dll
b) Modificar el directorio predeterminado para guardar nuestras pginas. En Apache por defecto es el directorio: C:\Archivos de programa\Apache Group\Apache\htdocs\ en nuestro caso con la instalacin modificada quedo de la siguiente forma: C:\Apache\htdocs Pero podemos cambiarlo fcilmente. Buscamos DocumentRoot en nuestro archivo httpd.conf # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "C:/Archivos de programa/Apache Group/Apache/htdocs"
Nosotros sustituimos la carpeta htdocs del Apache por la que queramos. Todos los archivos que vayas a probar con el Apache debern estar localizados en esta carpeta. Por ejemplo nos creamos una carpeta WEB dentro del directorio del servidor: DocumentRoot "C:/Servidor/WEB/" Por lo que construiremos toda nuestra pgina dentro de ese directorio, que equivale al directorio raz de nuestro host local. Ahora buscamos el DirectoryIndex y nos sale algo como esto: # <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> #
Clase 02
Pgina 4 de 16
[+++]
Tendremos que agregar las siguientes lneas para que nos quede de esta forma: # <IfModule dir_module> DirectoryIndex index.html index.php AddType application/x-httpd-php .php .php3 .php4 .phtml AddType application/x-httpd-php-source .phps </IfModule> # Para evitar que nos aparezca un error Forbidden You don't have permission to access / on this server. Ese problema lo puedes solucionar sencillamente con modificar una lnea del archivo HTTPD.CONF que encuentras en el directorio CONF de tu instalacin de APACHE. La configuracin de Apache por defecto restringe el acceso a directorios de tu instalacin, para cambiar esto abrimos el archivo referido HTTPD.CONF y buscamos la parte donde viene esto :
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Satisfy all </Directory>
y simplemente cambiamos Deny from all por Allow from all , quedando as
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all <---Esta lnea es la que cambi Satisfy all </Directory>
7.- Probando nuestro servidor Apache Ahora vamos a probar el Apache y PHP, para lo cual deberemos arrancar el Apache.
Clase 02
Pgina 5 de 16
[+++]
Para probar que nuestro modulo este instalado correctamente podemos crear un archivo llamado ejemplo info.php dentro de la carpeta de nuestra web cuyo contenido sea exclusivamente el siguiente: <? phpinfo(); ?>
Si accedemos mediante nuestro navegador a la direccin http://127.0.0.1:3000/info.php o http://localhost:3000/info.php (recuerda que 127.0.0.1 = localhost) con el Apache activo deberemos visualizar una pgina de informacin de PHP. Si no sale, algo ha fallado, revisa los pasos.
Clase 02
Pgina 6 de 16
[+++]
El cual como resultado nos generar una pgina que contendr el texto: Hola Mundo!!!!! Pero si queremos lograr el mismo resultado desde PHP, el cdigo sera:
<html> <head> <title>Titulo</title> </head> <body> <?php echo "Hola Mundo!!!"; ?> </body> </html>
El cual como resultado nos generar una pgina que contendr el texto (el mismo resulto que HTML): Hola Mundo!!!!!
Clase 02
Pgina 7 de 16
[+++]
Ejemplo:
<?php //Comentario de una sola lnea //segunda lnea del comentario de arriba /*comentarios de varias lneas estos cometnarios ayudan a los programadores a comentar grandes bloques de cdigo*/ ?>
Variables
Para declarar una variable en PHP no es necesario declararla y asignarle un tipo de dato antes de usarla como era el caso de C++, en PHP basta con declarar la variable y dependiendo del tipo de dato que se le asigne, automticamente ese ser el tipo de dato al que pertenecer la variable. Para indicar que una expresin es una variable basta con agregar el smbolo $ antes del nombre de la variable,
$variable1 = 23; //Variable del tipo entero con valor a 23 $variable2 = 23.5; //Variable del tipo de coma flotante con valor de 23.5 $variable3 = "Juan"; //Variable del tipo cadena string con valor de 'Rodrigo' $variable4 = true; //Variable del tipo boolean con valor de true, notese que no va entre comillas el valor de true
Clase 02
Pgina 8 de 16
[+++]
Una propiedad interesante de las variables es que si en determinado momento nosotros necesitamos una variable, podemos crearla y asignarle un valor en ese momento, el ejemplo ms comn es cuando necesitamos un contador para un FOR o un WHILE (que veremos ms adelante). Otra propiedad interesante es que yo puedo crear una variable con un nombre, y usar esa misma variable y guardarle un tipo de dato completamente diferente del cual tena asignado la primera vez que se creo, es decir:
<?php $var1 = 34; //aqu la variable tiene el valor de 34 y es del tipo entero $var1 = "Juan"; //Ahora la variable es del tipo String y su valor es 'Rodrigo' ?>
Lo anterior no es recomendable usarlo demasiado, esto solo se utiliza en caso de que no sepamos que tipo de dato contendr esa variable, puede ser un registro de una tabla o un valor de un formulario.
Operadores
Los operadores no son ms que la simbologa utilizada para asignar valores, hacer operaciones matemticas, comprar elementos y cambiar la ejecucin. Los operadores aritmticos son: Operadores binarios: + * / % Suma de 2 o ms elementos Resta de 2 o ms elementos Multiplicacin de 2 o ms elementos Divisin de 2 elementos. Error si divide entre cero Mdulo de la divisin, Devuelve el residuo entero de una divisin
Clase 02
Pgina 9 de 16
[+++]
NOTA: Los operadores binarios son los que necesitan como mnimo 2 operandos para funcionar, y los unarios son los que necesitan solo un operando para que puedan ser usados, tambin existe un operador ternario el cual es: ?, pero lo veremos ms adelante. Uso del Mdulo de la divisin Ejemplo: 36 / 6 = 6 // Cociente de la divisin 36 % 6 = 0 // Residuo de la divisin Los operadores de asignacin son:
+=
-=
/=
Clase 02
Pgina 10 de 16
[+++]
Los operadores de comparacin son: == === < > <= >= Los operadores lgicos son: and , && or, || (pipes) (alt+124) xor ! (Not) Operadores de Cadenas Existen dos operadores de cadenas: El operador de concatenacin (.) , que devuelve el resultado de concatenar los operandos izquierdo y derecho, y el operador de concatenacin y asignacin (.=) . Veamos un ejemplo de su uso: $a = "Hola "; $b = $a . "Mundo!"; // ahora $b contiene "Hola Mundo!" $a = "Hola "; $a .= "Mundo!"; // ahora $a contiene "Hola Mundo!" Devuelve verdadero si A y B lo son al mismo tiempo Devuelve verdadero si A B son verdaderos o ambos al mismo tiempo Devuelve verdadero si A B son verdaderos pero no al mismo tiempo Negacin, devuelve verdadero si la funcin es falsa y viceversa Igual siempre y cuando el valor sea el mismo Igual siempre y cuando el valor y el tipo de dato sean el mismo Menor que Mayor que Menor o igual que Mayor o igual que
\" \\ \n \r
Carcter dobles comillas Carcter barra invertida Nueva lnea Retorno de carro
\t Tabulador horizontal
Clase 02
Pgina 11 de 16
[+++]
Variables variables
PHP permite un mecanismo para mantener variables con un nombre no fijo. $a = "hola"; $$a = "mundo"; El ejemplo anterior, define dos variables, una denominada $a que contiene el valor "hola" y otra que se llama $hola que contiene el valor "mundo" Para acceder al valor de una variable, se accede con: echo "$a ${$a}";
Estructuras de Control
La mejor forma de resumir cada una de las opciones que ofrece PHP para las estructuras de control es mediante una tabla: Estructura If, if else, if elseif while for do.. while foreach(array as $value) foreach(array as $key=>$value) (PHP4 y no PHP3) switch continue break require()(Necesitan estar dentro de tags PHP) include()(Necesitan estar dentro de tags PHP) Alternativa if: endif; while: endwhile; for: endfor; -
switch: endswitch; -
Clase 02
Pgina 12 de 16
[+++]
PHP permite el mecanismo de argumentos por defecto. Un ejemplo de esta caracteristica es:
function hacerCafe($tipo="capuchino") { return "he hecho un caf $tipo\n"; } En la llamada a esta funcin se obtendr una frase u otra segn se llame: echo hacerCafe(); o echo hacerCafe("expreso");
Clase 02
Pgina 13 de 16
[+++]
En el caso de tratarse de una funcin con argumentos por defecto y argumentos normales, los argumentos por defecto debern estar agrupados al final de la lista de argumentos.
En PHP4 el nmero de argumentos de una funcin definida por el usuario, puede ser variable, se utilizan las funciones func_num_args(), func_get_arg() y func_et_args().
Valores devueltos
A diferencia de C, PHP puede devolver cualquier nmero de valores, slo har falta recibir estos argumentos de la forma adecuada. Ejemplo: function numeros() { return array(0,1,2); } list ($cero, $uno, $dos) = numeros();
Funciones Variables
Las funciones variables pueden ser una gran y potente herramienta en el procesamiento dnamico de un script. Ejemplo: <?php funcion foo() { echo "En foo()<br>\n" } function bar ($arg ='') { echo " bar();El argumento ha sido '$arg'.<br>\n" } $func = 'foo'; $func(); $func='bar'; $func('test'); ?>
Clase 02
Pgina 14 de 16
[+++]
Clases y objetos
La sintaxis para definir una clase es la siguiente:
<?php class Carta { var $items; function add_item ($artnr, $num) { $this->items[$artnr] +=$num; } function remove_item8$artnr, $num) { if ($this->$item($artnr, $num) { $this->items[$artnr] -= $num; return true; } else { return false; } } } ?> El operador new crea una instancia de la clase Carta. $carta = new Carta; La herencia en PHP se realiza con extends. Los constructores de cada clase se llaman automticamente por el operador new . El constructor de cada clase debe tomar el mismo nombre de la clase y cuando se trata de una clase derivada, hay que tener cuidado porque slo se llama automticamente al constructor de dicha clase pero no al constructor de la clase padre.
Clase 02
Pgina 15 de 16
[+++]
Clase 02
Pgina 16 de 16