Es una introducción a PHP, para personas que ya tengan conocimientos de programación y quieran desarrollar sistemas de forma rápida, usando PHP, HTML5, JQUERY, GOOGLE MAPS, el ejemplo final aplica todas las tecnologías indicadas.
3. Introducción a PHP.
Lenguaje de Programación
Hypertext pre proccesor
Instrucciones
Lado del Servidor
Secuenciales
Variables
Operadores
Sentencias
Repetitivas
Arreglos
Condicionales
Funciones
Incluye
Incluye Incluye
Incluye
TAG HTML
Da una
respuesta
Visualizado
Navegador
Web del
Cliente
crear paginas web
dinámicas
para
Interpreta
Características
Multiplataforma
Muchas conexiones a
base de datos
Rápido
Sintaxis similara C
Interpretado
Solicitudes
Soporta
Clases
es
Gráficos Socket
Libre
Archivos
Criptografía
XML
JSONFrameWorks
Muy
usado
Creado
Rasmusl
Lerddorf 1995
PHP/FI 2.0
Andi Gutmans
y Zeev Zurasky
1997
PHP3
Tiene
4. Herramientas para
desarrollo
Windows Linux
Editores de Código Dreamweaver,Notepad++,
Sublime Text, NetBeans, ….
Sublime Text,
NetBeans, …
Base de datos SQL Server,
MySQL,
PostgreSQL,
MariaDB,
MongoDB,…
MySQL,
PostgreSQL,
MariaDB,…
IDE Base de datos SQL Server Management ,
PHPMyAdmin,
SQL yog
PHPMyAdmin,
SQL yog
NavegadorWeb Chrome, Firefox Chrome, Firefox
5. Instalación en Windows
• Se esta trabajandoen Windows7.
• Usara un paquete todo.
– XAMP
– Descargamos XAMP
– https://www.apachefriends.org/es/index.html
• Procedemos a instalar
6.
7. Primer programa en PHP
Guarda en la carpeta
C:xampphtdocs
Con el nombre Scrip01.php
Llamamosmediante unna vegador y
colocamos
http://localhost/Scrip01.php
<?php : Indica el incio de codigo PHP
?> : Indica el final del codigo PHP
echo. Funcion que escribe texto
<?php : Indica el incio de codigo PHP
?> : Indica el final del codigo PHP
echo. Funcion que escribe texto
9. Variables, Datos, Ámbito,
Constantes
• Las variables comienzan con $
• Las variables no requieren ser declaradas.
• Una variable puede almacenar un varios tipos
de datos en una misma función.
• Distingue entre mayúsculas y minúsculas.
13. Operadores
MATEMÁTICOS BOLEADOS
+ Suma && And o i lógico
- Resta || Or u O lógico
* Multiplicación ! Not u Lógico
/ Divisióno División Entera. and And o i lógico
% Resto o modulo or Or u O lógico
CADENA xor Xor (true si x=true o y=true,
false si ambos son true). Concatenar
‘ Inicio y fin de cadena COMPARACIÓN
COMPARACIÓN == Igual
< Menor que === Idéntico
> Mayorque != Diferente
>= Mayor o igual que <> Diferente
<= Menor o igual que !== No idéntico
14. Operadores
Incrementos/Decrementos Asignación
++ Incremento en uno = Asigna la expresión/valorde la parte
derecha del operadora la variableque
esta a la izquierda del operador
-- Decremento en uno +=
Arreglos -=
+ Union /=
== Igualdad *=
=== Identidad(mismoorden
y de los mismos tipos.)
%=
!= , <> Desigualdad .=
!== No-identidad &=
15. • ¿Cuánto es 2+3*5?
• A. 25
• B. 10
• C. 17
• ¿Cuánto es (2+3)^2-1?
• A. 25
• B. 5
• C. 24
16. Prioridad de operadores
Operadores aritméticos
Prioridad Operador
1 ( ) Paréntesis
2 ^ Potencia
3 * / % Multiplicación, división,modulo
4 + - Resta
Operadores Lógicos y relacionales
Prioridad Operador
1 ! Negación
2 () Paréntesis
3 < <= >= > Menor que, Menor o igual que …
4 <> == != Diferente, Igual,
5 && and Y lógico
6 || or O lógico
29. Ejemplo anidado
• Un préstamo puede ser calificado
por categorías (M) Microempresa,
(P)Pequeña empresa,
(H)Hipotecario.
• Cada uno de los cuales se califica
según su morosidad en base a los
días de atraso.
• Para microempresa y Pequeña
empresa
– Normal cuando los díasde atraso
<=8
– CPP cuando los días de atraso
están 9 a 30
– DEF cuando los díasde atraso
están 31 a 60
– DUD cuando los días de atraso
están 61 a 120
– PER cuando los días de atraso
están 121 a +
• Para Hipotecario
– Normal cuando los
días de atraso <=30
– CPP cuando los días de
atraso están 31 a 60
– DEF cuando los días de
atraso están 61 a 120
– DUD cuando los días
de atraso están 121 a
365
– PER cuando los días de
atraso están 366 a +
42. Funciones
Son rutinas reutilizables que se llaman desde otras
partes del programa, son reutilizables pueden tener
parametros que sirven para indicarle que hacer
46. • require() vs include()
• Ambas funciones importan o insertan el código contenido en el
archivo.php dentro de otro. La diferencia puede deducirse de su
nombre:
• require() establece que el código del archivo invocado es requerido,
es decir, obligatorio para el funcionamiento del programa. Por ello,
si el archivo especificado en la función require() no se encuentra
saltará un error “PHP Fatal error” y el programa PHP se detendrá.
• include(), por el contrario, si no se encuentra dicho código, saltará
un error tipo “Warning” y el programa seguirá ejecutándose
(aunque como consecuencia de no incluirse el código puede que no
funcione correctamente, o sí, depende de la situación).
* Mejor usar un
iclude_once
48. • require_once()/include_once() vs
require()/include()
• Las versiones require_once() e include_once()
funcionande la misma forma que sus
respectivos, salvo que, al utilizar la
versión _once, se impide la carga de un mismo
archivo más de una vez.
49. • <html>
<body>
<h1>Welcome to my home page!</h1>
<?php include 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
• <html>
<body>
<h1>Welcome to my home page!</h1>
<?php require 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>
60. var map;
var contador=false;
google.maps.event.addDomListener(window,'load', initialize);
function initialize(){
var latlng= new google.maps.LatLng(-13.6349152,-72.8813095);
var myOptions ={
zoom:16,
center:latlng,
mapTypeId:google.maps.MapTypeId.ROADMAP,
disableDoubleClickZoom:true
};
map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
infowindow =new google.maps.InfoWindow();
// el geocodificador
geocoder= new google.maps.Geocoder();
var markDile = new google.maps.Marker({
position:latlng,
map: map,
title:"Abancay!",
icon:"cliente.png"
});
google.maps.event.addListener(markDile,'click', function() {
map.setZoom(18);
});
google.maps.event.addListener(map,'dblclick',function(event){
if(!contador){
placeMarker(event.latLng);
contador= true;
}else{
markCliente.setPosition(event.latLng);
document.getElementById('map_lat1').value=event.latLng.lat()+',' + event.latLng.lng();
}
});
}
Scrip34.php
61. Scrip34.php
var markCliente;
function placeMarker(location) {
markCliente = new google.maps.Marker({
position: location,
map: map,
draggable:true,
animation: google.maps.Animation.DROP,
title: "Direccion del cliente",
icon: "favicon.png"
});
document.getElementById('map_lat1').value=location.lat()+','+location.lng();
google.maps.event.addListener(markCliente, 'click', function(event) {
document.getElementById('map_lat1').value=event.latLng.lat()+','+event.latLng.lng();
});
google.maps.event.addListener(markCliente, 'dragend', function(event) {
document.getElementById('map_lat1').value=event.latLng.lat()+','+event.latLng.lng();
});
}
62. Scrip34.php
function showAddress(address) {
if (geocoder) {
// obtener la Geo-Codificación Forward,
// introduciendo un dato string (address)
geocoder.geocode({'address': address, 'region': 'PE'}
, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
// preparar la info de la posición latitud y longitud
var input = results[0].geometry.location.toUrlValue();
var latlngStr = input.split(",", 2);
var lat_mx = parseFloat(latlngStr[0]);
var lng_mx = parseFloat(latlngStr[1]);
var latLong_mx = new google.maps.LatLng(lat_mx, lng_mx);
// centrar el mapa en la posición encontrada
map.setZoom(16);
map.setCenter(latLong_mx);
marker.setPosition(latLong_mx);
marker.setVisible(true);
//
google.maps.event.trigger(marker, 'click');
// llenar con la info de la codificación inversa, o sea, la dirección humanamente legible
var location_type_mx = results[0].geometry.location_type
infowindow.setContent('<b>' + results[0].formatted_address + '</b>' + '<br/><br/><i style="color: #777;">' +
a_locations_type[location_type_mx] + '</i>');
infowindow.open(map, marker);
} else {
alert(a_geocode_status[status]);
}
} else {
alert(a_geocode_status[status]);
}
});
} // endif
}
</script>