Diapositivas como usar la librería SOAP de PHP
Categoría: PHP
Controlador + vista en cakePHP
Creamos el controlador Prueba:
App::uses('AppController', 'Controller');
/**
* CakePHP PruebaController
* @author a4alumno
*/
class PruebaController extends AppController {
public function index() {
die("Hasta aquí hemos legado");
}
public function saludo($nombre,$apellidos="") {
$this->set('nombre',$nombre);
$this->set('apellidos',$apellidos);
$this->set('nombrecompleto',$apellidos.", ".$nombre);
}
public function suma($a,$b){
$this->set('suma',$a+$b);
}
public function mayor($a,$b){
if ($a<$b) $a=$b;
$this->set('mayor',$a);
}
}
En el ejemplo anterior tenemos las acciones: saludo, suma y mayor. Necesitaríamos una vista para cada una de ellas:
//archivo en View\Prueba\saludo.ctp <h2><?=$nombrecompleto?></h2> <h1>Hola que tal?</h1> <?php echo $nombre." ".$apellidos;
//archivo en View\Prueba\suma.ctp <h2>La suma es <?=$suma?></h2>
//archivo en View\Prueba\mayor.ctp <h2>El mayor es <?=$mayor?></h2>
Programación orientada a objetos
<?php
class miClase {
public $propiedad;
function muestraContenido() {
echo $this->propiedad;
}
}
$obj1 = new miClase;
$obj2 = new miClase();
$obj1->propiedad = "Hola";
$obj2->propiedad = "Adios";
echo $obj1->propiedad;
$obj2->muestraContenido();
class Alumno {
public $nombre;
public $apellido;
public $nota;
private $cuota;
function nombreCompleto() {
echo $this->nombre . " " . $this->apellido;
}
function aprobado() {
if ($this->nota >= 5) {
return true;
} else {
return false;
}
}
function cuota($valor) {
if ($valor == 100 || $valor == 200 || $valor == 300) {
$this->cuota = $valor;
}
}
function anualidad() {
return $this->cuota * 12;
}
}
$juan = new Alumno();
$ana = new Alumno();
$juan->nombre = "Juan";
$juan->apellido = "Pérez";
$juan->nota = 6;
$juan->nombreCompleto();
if ($juan->aprobado()) {
echo "Aprobado!!!";
}
$juan->cuota(200);
echo $juan->anualidad();
$ana->apellido = "Ana";
Mantenimiento tienda orientado a objetos
Ejemplos repaso
<?php
$a = 5;
echo 'Hola <b>que</b> tal?';
if ($a == 5) {
echo '<h1>Cabecera con echo</h1>'
. '<h2>lalallalala</h2>'
. '<p>texto tralalala</p>';
}
if ($a == 5) {
?>
<h1>Cabecera sin echo</h1>
<?php
}
$p = "cadena";
$n = 5.5;
$b = false;
echo $p;
$p = 74;
echo $p;
$tabla = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$tabla2 = [1, 2, 3, 4];
$tabla3 = ['ana' => 1, "juan" => 3, "rosa" => 5];
shuffle($tabla);
for ($i = 0; $i < count($tabla); $i++) {
echo $tabla[$i] . "<br/>";
}
sort($tabla);
foreach ($tabla as $elemento) {
echo $elemento . "<br/>";
}
foreach ($tabla3 as $clave => $valor) {
echo $clave . "--->" . $valor . "<br/>";
}
echo nombredelafuncion(4, 4);
echo "##" . levenshtein("Barcelona", "Bracelona");
cabecera("Ola k ase???");
echo strrev("Ola k ase???");
function nombredelafuncion($parametro1, $parametro2) {
return $parametro1 + $parametro2;
}
function cabecera($texto) {
?>
<h1><?= $texto ?></h1>
<?php
}
$server = "localhost";
$user = "root";
$password = "";
$db = "tienda";
try {
$conn = new PDO("mysql:host=$server;dbname=$db", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->query("SET NAMES 'utf8';");
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
//Inserta un producto
$sql = "insert into productos (nombre,precio) values (:nombre,:precio)";
$st = $conn->prepare($sql);
$st->execute(array(
':nombre' => 'Tuerca',
':precio' => 10
));
echo "Filas afectadas: " . $st->rowCount() . "<br/>";
echo "Id producto: " . $conn->lastInsertId();
//Borra un producto
$sql = "delete from productos where idproductos=:idproductos";
$st = $conn->prepare($sql);
$st->execute(array(
':idproductos' => 11
));
echo "Filas afectadas: " . $st->rowCount() . "<br/>";
//Editar un producto
$sql = "update productos set nombre=:nombre, precio=:precio where idproductos=:idproductos";
$st = $conn->prepare($sql);
$st->execute(array(
':idproductos' => 14,
':nombre' => 'arandela',
':precio' => 100
));
echo "Filas afectadas: " . $st->rowCount() . "<br/>";
$sql = "insert into productos (nombre,precio) values (:n,:p)";
$st = $conn->prepare($sql);
for ($i = 0; $i < 10; $i++)
$st->execute(array(
':n' => 'producto' . $i,
':p' => $i * 3
));
$sql="select * from productos";
$st=$conn->prepare($sql);
$st->execute();
while ($row=$st->fetch()){
echo $row['nombre']."<br/>";
}
echo "<hr/>";
$st->execute();
$filas=$st->fetchAll();
foreach($filas as $fila_individual){
echo $fila_individual['nombre']."<br/>";
}
?>
Ejercicio validar mail
$cadenas = ["pepe@pepe.com", "ola k ase??", "@@@....", "hola.ssss@mmv", "pepe.com", "pepe@pepe"];
//Recorrer con for
for ($i = 0; $i < count($cadenas); $i++) {
echo ($i + 1) . ".- " . $cadenas[$i] . (esMail2($cadenas[$i]) ? '' : ' no ') . " es mail.<br/>";
}
//Recorrer con foreach
foreach($cadenas as $cadena){
echo $cadena . (esMail3($cadena) ? '' : ' no ') . " es mail.<br/>";
}
function esMail($cadena) {
$pos1 = strpos($cadena, "@");
$pos2 = strpos($cadena, ".");
if ($pos1 !== false && $pos2 !== false && $pos2 > $pos1) {
return true;
} else {
return false;
}
}
function esMail3($cadena) {
$pos1 = strpos($cadena, "@");
$pos2 = strpos($cadena, ".",$pos1);
return ($pos1 != false && $pos2 !== false);
}
function esMail2($cadena) {
if ($pos = strpos($cadena, "@")) {
return strpos($cadena, ".", $pos);
}
return false;
}
function esMailReg($cadena){
return preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$cadena);
}
function buscaMail($cadena){
$pattern="/(?:[A-Za-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/";
preg_match_all($pattern,$cadena,$mails);
return $mails;
}
Funciones Array (2)
Saber si existe un valor en el array:
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Existe Irix";
}
if (in_array("mac", $os)) {
echo "Existe mac";
}
Máximo y mínimo de un array:
echo max(2, 3, 1, 6, 7); // 7 echo max(array(2, 4, 5)); // 5 echo min(2, 3, 1, 6, 7); // 1 echo min(array(2, 4, 5)); // 2
Ordenar arrays ¡Ojo si son asociativos! (ver manual)
$frutas = array("limón", "naranja", "banana", "albaricoque");
sort($frutas); //No asociativos
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);//Asociativos
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits); //Ordena por clave
$números = range(1, 20);
shuffle($números); //Desordena
Aplicar una función a todos los elementos del array:
$frutas = array("d" => "limón", "a" => "naranja", "b" => "banana", "c" => "manzana");
function test_alter(&$elemento1, $clave, $prefijo)
{
$elemento1 = "$prefijo: $elemento1";
}
function test_print($elemento2, $clave)
{
echo "$clave. $elemento2
\n";
}
echo "Antes ...:\n";
array_walk($frutas, 'test_print');
array_walk($frutas, 'test_alter', 'fruta');
echo "... y después:\n";
array_walk($frutas, 'test_print');
Union de arrays:
$union = array_unique(array_merge($a, $b));
Intersección:
$intersection = array_intersect($a, $b);
Diferencia:
$difference = array_diff($a, $b);
Diferencia simétrica:
$difference = array_merge(array_diff($a, $b), array_diff($b, $a));
Página PHP generación cuadrados mágicos
Arrays multidimensionales en PHP
$b=array(array('A','b'),array('c','d','e','f'),array('g','h','i'));
echo "<pre>";
print_r($b);
echo "</pre>";
echo $b[1][2];
echo "<br/>";
for ($i=0;$i<count($b);$i++){
for($j=0;$j<count($b[$i]);$j++){
echo "($i,$j) ".$b[$i][$j]." | ";
}
echo "<br/>";
}
foreach($b as $valor){
foreach($valor as $letra){
echo $letra."|";
}
echo "<br/>";
}
for ($i = 0; $i < 5; $i++)
for ($j = 0; $j < 5; $j++)
$c[$i][$j] = $j + $i * 5;
echo array_to_table($c);
function array_to_table($tabla) {
$res="<table border=1>";
for ($i = 0; $i < count($tabla); $i++) {
$res.="<tr>";
for ($j = 0; $j < count($tabla[$i]); $j++) {
$res.="<td>" . $tabla[$i][$j] . "</td>";
}
$res.="</tr>";
}
$res.="</table>";
return $res;
}
//Mezcla sin sentido, a lo loco:
$tutifruti=array('juan'=>array('a','b','c'),'ana'=>array('c'=>3,'d'=>6,'e'=>8),'rosa'=>array('j','k',array(1,2,3,4)));
var_dump($tutifruti);
Arrays asociativos en PHP
$a=array('Juan'=>'Técnico','Ana'=>'Marketing','Rosa'=>'Administración');
$a['Jose']='Ventas';
echo $a['Juan']."<br/>";
foreach($a as $clave=>$valor){
echo $clave." - ".$valor."<br/>";
}
echo "<pre>";
print_r($a);
var_dump($a);
echo "</pre>";