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>";