Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas

jueves, 13 de febrero de 2014

Día 55. Biblioteca (VI)

Querido diario;

Las secciones de mostrar el listado de libros y realizar las búsquedas ya están acabadas. Aquí su código fuente:

Listado de libros:




Buscar libros:





Ahora vayamos a por la sección de Editar libros.
Dentro de ese .php tenemos tres secciones, añadir, actualizar y borrar. Cada una de estas funciones serán realizadas desde un fichero externo..

Entremos con el de añadir ficheros. El mayor problema es que realizaremos la llamada desde un archivo externo, y hacía una lista desplegable. Problema porque aun no lo hemos visto, que igual luego es sencillo.

¿Cómo crear una lista desplegable?

Se hace con la opción select y option. Es decir.
<select name="nombreQueQueramosDarle">
     <option></option>
</select>

Pero si queremos que este actualizar en tiempo real, deberemos crear <select> y, antes de entrar a <option>, hacer una llamada a la base de datos para que tome los datos en tiempo real. Y ya, después, hacerlo con un echo como aquí:

echo "<option>,$row3[campoQueMostramos],</option>"

miércoles, 5 de febrero de 2014

Día 52. Biblioteca (V)

Querido diario,

Hoy seguimos haciendo la sección de Mostrar libros en PHP.

Concretamente, hoy he llegado tarde por las clases de inglés, pero estaba explicando como intercalar código HTML intercalado con PHP.

Hay dos formas.

<html>
<head>
</head>
<body>
<?php
?>
<Codígo HTML>
</body>
</html>

En esta ocasión, después del primer código PHP y la interrupción de HTML, podemos volver a crear otra sección PHP. Es decir:

<html>
<head>
</head>
<body>
<?php
?>
<Codígo HTML>
<?php
?>
</body>
<html> 

O también tenemos la segunda forma, usando el echo:

<?php
echo "<table>
                <td>
                    <tr>$variable[parametro]</tr>
                <td>
          </table>
?>

Hay que tener en cuenta que a la hora de hacer esta segunda versión, para usar las comillas de HTML las haremos con comillas simples. Si no de otra manera nos saldría como un error de sintaxis, ya que el echo (en PHP), sí que se escribe con comillas dobles.

Día 51. Biblioteca (IV)

Querido diarío;

Hoy hemos tenido una hora sólo de clase, así que he comenzado a hacer la sección de Mostrar Libros, a ver si me salía a mi sólo.

He tenido algunos problemas, pero consigo mostrar un resultado. Mañana continuaré

viernes, 31 de enero de 2014

Día 50. Biblioteca (III)

Mientras sube el profesor los comandos para hacer todo el programa, estoy haciendo la página inicial que no requiere de PHP, sólo HTML.

Creo un frameset dividido en dos páginas. El código es el siguiente:

Index:


Título:


Cuerpo:


El resultado (provisional) es este:


En esta ocasión, cuándo pulse sobre Mostrar libros, Buscar, Editar libros o Configurar secciones se mantendrán todas esas secciones y en la zona de la estantería se cargará la página PHP.

El siguiente paso va a ser ya montar el código en los .php.

Para hacer las llamadas a la base de datos, necesitaré ciertas funciones. Pongo a continuación las requeridas, sacas de un documento enviado por el profesor.

1. Conectar al servidor de la base de datos
Sintaxis: mysql_connect( servidor, usuario, contraseña)

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
// some code
mysql_close($con);
?>

2. Selección de la base de datos
Sintaxis: @mysql_select_db (basededatos, $conexion)

$bd_seleccionada = mysql_select_db('nombreBaseDeDatos', $conexión);
if (!$bd_seleccionada) {
    die ('No se puede usar nombreBaseDeDatos : ' . mysql_error());
}

3. Consulta MySQL
Sintaxis: mysql_query(query,connection)

$sql = "SELECT * FROM Person";
mysql_query($sql,$con);
Hay otros tipos de consultas. Si hago el módulo de búsqueda, me interesa un SELECT, si quiero borrar, DELETE, INSERT para agregar y UPDATE para actualizar los datos.

4. Devuelve todos regitros antes mostrados.
Sintaxis: mysql_fetch_array(data,array_type)

<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * from Person WHERE Lastname='Refsnes'";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_array($result));
mysql_close($con);
?>
En esta ocasión si quiero que se muestre, podemos escribir $variable[posicionVector/nombreCampo]. Tal y como está en este ejemplo, mostraría toda la información sin estructurar.

5. Cerrar la sesión de la base de datos 
Sintaxis: mysql_close

mysql_close(connection)
mysql_close($con);



A la hora de hacer la búsqueda, se realizará a través de un formulario, un cuadro de entrada.

<form method="POST" action="buscar.php">
     <input name="Titulo" type="text" size="50" maxlength="100">
     <input name="submit" type="submit" value="A Buscar">

Lo que hacemos es que este formulario se llama a sí mismo en Action.
El primer input le indicamos que sea de tipo texto, con una longitud de 50 ¿píxeles? y con un máximo de cien caracteres.
El segundo input es tipo submit. Es decir, crea un valor. En la etiqueta value crea el texto que queremos que se muestre. Lo que hace un submit es la función referenciada en el parámetro action.
La sección de POST sirve porque en el PHP crearemos una variable que haga referencia a ese cuadro de búsqueda. Es decir: 


$var1=$_POST["Titulo"];
Posteriormente convertiremos esa variable en cadena de texto

settype($var1,"string");

Y luego para mostrar la búsqueda sería repetir los pasos de las sentencias que he escrito arriba.

Hay que tener en cuenta que, en PHP, las cadenas de caracteres se ponen con dobles comillas, pero sin embargo si combino con valores de variables, usaré comillas simples para el contenido PHP.

$prueba=
"SELECT Id, Titulo
FROM libros
WHERE Titulo= '$valor1'";

También se deberá reiterar la construcción de tantas filas (en la tabla), como registros hay en la base de datos.

Para mostrar información enlazada a otra tabla, deberé hacer otra consulta para traer el campo correspondiente.

Si se quiere comprobar que estamos yendo bien, o tener los error controlados, lo idóneo sería hacer que muestre un mensaje si una variable esta fallando, con un mensaje personalizado. Ejemplo

if (! $prueba) {
echo "Hay errores en la consulta";
exit();
Ahora, para que muestre los resultados, por ejemplo en una tabla., la indicamos código PHP para escribir el valor de la búsqueda, todo esto metido dentro de un while.

<table>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
<td><?PHP echo $busqueda["CampoAMostrar"];?></td>
</table>

Esto es todo por hoy. La semana que viene comenzaré a hacer el código PHP

jueves, 30 de enero de 2014

Día 49. Biblioteca (II)

Querido diario;

Ya tenemos creada la base de datos de nuestra página web.
De momento, el desarrollo lo tenemos en este punto, ya que la pregunta que nos debemos hacer al empezar a desarrollarla es: ¿Tenemos que almacenar / acceder a datos en nuestra aplicación?

SECCIÓN BASE DE DATOS


Pues eso. Y por supuesto, en cada tabla creada debemos declarar una clave primaria, ya que son los identificadores únicos de la información que vamos a guardar. Así podemos combinar la información entre varias tablas.
Huelga decir que para combinar campos de varias tablas, debemos guardarlo con el mismo tipo y el mismo número de caracteres, pero no es necesario que en las dos tablas tengan el mismo título. Si relacionamos dos claves primarias de diferentes tablas, esto se conoce como foreign key.

En cuanto a tipos, los grandes tipos son:


  • Cadenas
  • Números
  • Fechas
  • Enumeraciones


Hay muchos más, pero estos son los principales. Y por supuesto, dentro de cada uno de los anteriormente mencionados existen varios subgrupos.

Supongamos que queremos hacer una nueva tabla. Vamos a Localhost - Nuestra base de datos.

Y rellenamos los siguientes datos.


Posteriormente a eso, veremos una nueva pantalla en la que indicaremos el nombre del campo, su tipo (lo que mencionaba antes), la longitud/valores, valor predeterminado, su cotejamiento, los atributos, si es nulo o no, si le indicamos autoincremental y el comentario de este campo.


Vayamos a los tipos.
  • INT: Declaramos un campo numérico. Si deseamos un campo auto-numérico, deberemos declarar este tipo, y que sea clave primaria. Si no lo fuera, podríamos crearlo de todas formas, pero MySQL podría quejarse.
  • VARCHAR: Son cadenas de caracteres de longitud variable. Es decir, si le declaro que pueden escribir cien caracteres y sólo ocupo 54, reducirá ese campo a 54 en este caso. Es decir, lo reduce al número de caracteres que se han ocupado. Pero hay una excepción. Si declaramos una longitud de cuatro caracteres, lo convertirá automáticamente en CHAR (que es lo mismo, pero de longitud fija. Aunque no ocupemos los cuatro caracteres, almacenará cuatro).
  • FLOAT: Sirve para almacenar números, pero permite también almacenar decimales. Si lo escribiera INT no dejará almacenar 1075.58, por ejemplo. Con FLOAT sí. Para declarar su longitud escribiremos numerosEnteros,numerosDecimales.
En el ejemplo superior, el campo id lo guardaré como campo INT, y la marca como campo VARCHAR. Pero por ejemplo, la cilindrada será numérica, pero como no vamos a operar con ese campo e incluso nos podría interesar indicar la cilindrada con su texto (ej: 49 cc), escribiremos con tipo VARCHAR.

El ejemplo quedaría así:


En el proyecto de la biblioteca, quedará así la tabla de libros:




Hecho esto, vamos a ver la parte lógica del negocio, es decir, la estructura del diseño.

ESTRUCTURA DE LA WEB

En el index.html dividiremos la página en dos secciones de página. La idea es mantener fijo el titulo en la partre superior y la inferior que vaya siendo quien cargue las páginas.

Es decir, index.html llama a dos ficheros. Cabecera.html y principal.php (que podría ser perfectamente un .html, pero bueno). El primero es sólo para el título, y desde el segundo llamaremos a los ficheros que se encargan de hacer la funcionalidad.

De momento voy a atender a la explicación. Iré publicando la estructura de la web poco a poco, conforme la vaya desarrollando.

miércoles, 29 de enero de 2014

Día 48. Biblioteca

Querido diario;

Estos dos días estamos viendo la explicación de como desarrollar una biblioteca con PHP y MySQL.

La idea básica es que, con la aplicación, desde un menú principal, puedas acceder a las secciones para ver el listado de libros, buscarlos, añadir libros y categorías, editarl@s y borrarl@s.

¿Cómo se hace todo esto?

Empezamos arrancando PHPMyAdmin. Veremos lo siguiente:


Esta es la pantalla de inicio de la aplicación. He tenido un problema. Si accedo con el usuario admin, no tengo permisos para añadir una base de datos. Para ello me tengo que loguear como root.

Hecho esto, hago clic en bases de datos y creo una, de cotejamiento, con el nombre biblio.


Pulsamos sobre la nueva base de datos y vamos a la sección de SQL, desde donde escribiremos las sentencias para crear las tablas.


Bueno, deberíamos escribir todas las sentencias a mano, pero nos lo va a pasar el profesor para que no tengamos que añadir todos los libros, ya que no está planeado aprender MySQL (una pena, que a mi me gustaba...)

La sentencia completa en SQL es la siguiente (hay que recordar que está para el motor de base de datos 5.6.12. Puede ser que en otras versiones no funcione correctamente.

#Estructura de la tabla `genero`

DROP TABLE IF EXISTS `genero`;
CREATE TABLE `genero` (
  `Id` int(11) default '0',
  `Texto` varchar(100) default NULL
);

#Volcar base de datos de tabla `genero`. Insertará nueve filas

INSERT INTO `genero` (`Id`, `Texto`) VALUES (1, 'Novela'),
(2, 'Crítica'),
(3, 'Policiaca'),
(4, 'Historia'),
(5, 'Poesía y Teatro'),
(6, 'Política'),
(7, 'Didáctica'),
(8, 'Psicología'),

(9, 'Lingüística');

#Estructura de la tabla `libros'

DROP TABLE IF EXISTS `libros`;
CREATE TABLE `libros` (
  `Id` int(11) NOT NULL auto_increment,
  `Titulo` varchar(100) default NULL,
  `Autor` varchar(100) default NULL,
  `IdGenero` int(11) default '0',
  PRIMARY KEY  (`Id`),
  FULLTEXT KEY `Titulo` (`Titulo`)

);

#Volcar la base de datos de tabla 'libros'

INSERT INTO `libros` (`Id`, `Titulo`, `Autor`, `IdGenero`) VALUES (1, 'El truco de los espejos', 'Agatha Christie', 3),
(2, 'Misterio en el Caribe', 'Agatha Christie', 3),
(3, 'Cartas sobre la mesa', 'Agatha Christie', 3),
(4, 'Los relojes', 'Agatha Christie', 3),
(5, 'Se anuncia un asesinato', 'Agatha Christie', 3),
(6, 'El hombre del traje color castaño', 'Agatha Christie', 3),
(7, 'Los elefantes pueden recordar', 'Agatha Chistie', 3),
(8, 'La casa Rusia', 'John le Carré', 3),
(9, 'Escándalo en Bohemia', 'Arthur Conan Doyle', 3),
(10, 'Juego mortal', 'Larry Collins', 3),
(11, 'La mujer del pelirrojo', 'Bill S. Ballinger', 3),
(12, 'La jungla de asfalto', 'W. R. Burnett', 3),
(13, 'Muerte en la noche', 'Edgar Box', 3),
(14, 'El juez ciego', 'Bruce Alexander', 3),
(15, 'Herencia maldita', 'Eric Ambler', 3),
(16, 'Privado de título', 'Andrea Camilleri', 3),
(17, 'La forma del agua', 'Andrea Camilleri', 3),
(18, 'La excursión a Tindari', 'Andrea Camilleri', 3),
(19, 'La voz del violín', 'Andrea Camilleri', 3),
(20, 'Cambio de escena', 'James Hadley Chase', 3),
(21, 'El ángel demoledor', 'Robert Crais', 3),
(22, 'La interferencia', 'Carlos Aguilar', 3),
(23, 'El arpa de hierba', 'Truman Capote', 3),
(24, 'El sueño eterno', 'Raymond Chandler', 3),
(25, 'Sangre española', 'Raymond Chandler', 3),
(26, 'Peces de colores', 'Raymond Chandler', 3),
(27, 'La hermana pequeña', 'Raymond Chandler', 3),
(28, 'Adiós, muñeca', 'Raymond Chandler', 3),
(29, 'Identidad desconocida', 'Patricia D. Cornwell', 3),
(30, 'El gato entre las palomas;10 negritos;El asesino de la guía de ferrocarril', 'Agatha Christie', 3),
(31, 'Por amor a Imabelle', 'Chester Himes', 3),
(32, 'Las armas miran atrás', 'Lajos Zilahy', 3),
(33, 'La educación de Patrick Silver', 'Jerome Charyn', 3),
(34, 'El fotógrafo que hacía belenes', 'Eloy M. Cebrián', 3),
(35, 'La plata de Britania', 'Lindsey Davis', 3),
(36, 'La estatua de bronce', 'Lindsey Davis', 3),
(37, 'La ciudad de los sueños', 'Anton Gill', 3),
(38, 'La ciudad del horizonte', 'Anton Gill', 3),
(39, 'Crimen internacional', 'varios', 3),
(40, 'Un beso de amigo', 'Juan Madrid', 3),
(41, 'El ángel triste', 'Carlos Pérez Merinero', 3),
(42, 'El club del crimen', 'B.M. Gill', 3),
(43, 'El peor hombre del mundo', 'Fernando Schwartz', 3),
(44, 'El tercer hombre', 'Graham Green', 3),
(45, 'El teatro del carnicero', 'Jonathan Kellerman', 3),
(46, 'Cuando el calor aprieta', 'Chester Himes', 3),
(47, 'Por amor a Imabelle', 'Chester Himes', 3),
(48, 'El grito de la lechuza', 'Patricia Highsmith', 3),
(49, 'El asesinato de las criadas chinas', 'Dashiell Hammett', 3),
(50, 'La maldición de los Dain', 'Dashiell Hammett', 3),
(51, 'El hombre delgado', 'Dashiell Hammett', 3),
(52, 'Cosecha roja', 'Dashiell Hammett', 3),
(53, 'La llave de cristal', 'Dashiell Hammett', 3),
(54, 'Piedras ensangrentadas', 'Donna Leon', 3),
(55, 'Muerte en un país extraño', 'Donna Leon', 3),
(56, 'El inocente', 'Mario Lacruz', 3),
(57, 'Campo de Batalla', 'Graham Green', 3),
(58, 'El espia que surgió del frío', 'John Le Carré', 3),
(59, 'Nuevas historias de Plinio', 'F. García Pavón', 3),
(60, 'Las hermanas coloradas', 'F. García Pavón', 3),
(61, 'Muerte en un país extraño', 'Donna Leon', 3),
(62, 'La gente de Smiley', 'John Le Carré', 3),
(63, 'Vestido para la muerte', 'Donna Leon', 3),
(64, 'Sobredosis', 'Arthur Lyons', 3),
(65, 'La viña de Salomón', 'Johnatan Latimer', 3),
(66, 'Fulgor de muerte', 'Elmore Leonard', 3),
(67, 'La onírica búsqueda de la desconocida Kadath', 'H. P. Lovecraft', 3),
(68, 'La sombra sobre Innsmouth', 'H. P. Lovecraft', 3),
(69, 'El caso de Charles Dexter Ward', 'H. P. Lovecraft', 3),
(70, 'La leona blanca', 'Henning Mankell', 3),
(71, 'Pisando los talones', 'Henning Mankell', 3),
(72, 'La quinta mujer', 'Henning Mankell', 3),
(73, 'Los perros de Riga', 'Henning Mankell', 3),
(74, 'Asesinos sin rostro', 'Henning Mankell', 3),
(75, 'El retorno del profesor de baile', 'Henning Mankell', 3),
(76, 'La ciudad del motor', 'Loren D. Esteleman', 3),
(77, 'La falsa pista', 'Henning Mankell', 3),
(78, 'La isla inaudita', 'Eduardo Mendoza', 3),
(79, 'La verdad sobre el caso Savolta', 'Eduardo Mendoza', 3),
(80, 'La cátedra', 'Javier Piqueras de Noriega', 3),
(81, 'Nada que hacer', 'Juan Madrid', 3),
(82, 'Días contados', 'Juan Madrid', 3),
(83, 'Regalo de la casa', 'Juan Madrid', 3),
(84, 'A mano armada', 'Ed McBain', 3),
(85, 'Extrañas lealtades', 'William McIlvanney', 3),
(86, 'Gálvez en la frontera', 'Jorge M. Reverte', 3),
(87, 'El enemigo insólito', 'Ross McDonald', 3),
(88, 'La mirada del adiós', 'Ross MacDonald', 3),
(89, 'El caso Galton', 'Ross MacDonald', 3),
(90, 'El hombre enterrado', 'Ross MacDonald', 3),
(91, 'Los maléficos', 'Ross MacDonald', 3),
(92, 'Prótesis', 'Andreu Martín', 3),
(93, 'A navajazos', 'Andreu Martín', 3),
(94, 'Si es no es', 'Andreu Martín', 3),
(95, 'Barcelona negra', 'José Luis Muñoz', 3),
(96, 'Por amor al arte', 'Andreu Martín', 3);


Fin de la cita.

Si vamos a Biblio - Genero y seleccionando la fila ID, pulsamos sobre la llave para indicar que la queremos como "clave primaria". Desde ese momento ya podemos editar los registros también desde el panel de administración.

Continua mañana.

martes, 28 de enero de 2014

Día 47

Querido diario;

Hoy no hemos tenido mucho tiempo de clase, pero en ese rato hemos visto la aplicación de biblioteca que tenemos que crear.

Parece entretenido hacerlo. Seguiré comentando.

viernes, 24 de enero de 2014

Día 46. Solución a caso práctico (II)

Querido diario;

La solución completa al ejercicio del otro día es esta:


Este sí que lo hace bien. Muestra el fichero tal cuál está, y en una linea por debajo muestre el resultado modificado, pero sin almacenarlo dentro de estoesunaprueba.txt. Así sí da gusto.

Al final resulta que el mío no estaba tan mal. Me sigue guardando el resultado dentro del fichero, pero he conseguido que se muestre donde quiero. Para ello (EN MI CODIGO), después de la línea de str_replace de la variable $cambiado, escribimos 

echo $cambiado
El modo de abrir el archivo la segunda vez lo sustituyo por r+, en vez de a+. Además, las dos líneas siguientes del echo eran las que me sobraban.

El resultado de mi código ha quedado así:


No iba tan desencaminado. Me siento hasta orgulloso y todo. Esto es lo que muestra por pantalla


viernes, 17 de enero de 2014

Día 45. Caso práctico

Querido diario;

Hoy lo empezamos con una nueva práctica.

Debemos abrir un fichero externo a la hoja PHP, mostrarlo por pantalla, modificarle todas las palabras "una" que tenga el documento por otra cualquiera (yo elegí "bimbadibu"), y volver a mostrarlo por pantalla.

La parte de mostrar el primer texto por pantalla ha salido bien. Este es el código empleado


Estoy atascado en la parte de modificar y volver a mostrar el resultado por pantalla, estoy un poquito atascado. Seguiré probando con lo que se me ocurre (o lea por Internet, por supuesto).

Mi código completo es este:


Lo que hace es abrir y leer el fichero sin problemas, pero a la hora de modificar el texto se queda en blanco y, al recargar la página, vuelve a copiar el mismo enunciado pero modificando la palabra, en la primera zona.

jueves, 16 de enero de 2014

Día 44. Introducción a PHP (III)

Querido diario;

Hoy, adivina, seguimos con el PHP.

Funciones

En el primer caso estamos viendo como hacer funciones y llamarlas para mostrar en pantalla. En realidad las funciones se hacen exactamente igual que con JavaScript. Veamos el código


Vemos que estamos llamando a esa función, de cuatro formas diferentes.
  • Todo dentro de comillas (ejemplo 1)
  • Usando concatenación (ejemplos 2 y 3)
  • Mostrando el resultado de la función directamente (ejemplo 4)
El resultado por pantalla sería siempre el mismo

El resultado es: 7
El resultado es: 7
El resultado es: 7
El resultado es: 7

_________________________

Operaciones con cadenas

 El código es el siguiente


Creamos dos variables, una $cadena "hola", y posteriormente $otracadena sea "hola-mundo-fin"

Ahora creamos una variable nueva, con el parámetro strlen (variable). Es decir, si escribimos

$longitud = strlen ($cadena);

el resultado que nos devolverá será 4

Otro parámetro. Explode crea un vector al separar una cadena en trozos, teniendose que especificar el caracter por el que se divide la cadena en sí.

$partes = explode ("-", $otracadena);

Aquí estamos rompiendo la cadena en tres trozos. Hola, fin y mundo, ya que usamos como delimitador el caracter -. Así que $partes es ahora un vector de tres posiciones.


Otra función. Chop. Esta elimina los espacios finales de una cadena, así como sus saltos de linea.

$varchop = chop($cadena);

En este caso, si tuviéramos en la variable $cadena uno (o varios) espacios al final, con esta linea los eliminariamos por completo.
Si queremos hacer la prueba y no añadir ningún espacio a la cadena, podemos añadirle un "falso espacio" con este código

$varchop = chop($cadena." \n")

La función strpos busca una cadena dentro de otra y devuelve su posición.

$position= strpos ("esto es un ejemplo", "un");

Así devolvería el resultado 8, que es la posición en la que está la palabra dentro de la cadena.

La función strpos reemplaza una cadena de texto por otra dentro de la zona indicada. Tiene tres argumentos obligatorios. Texto a buscar, por cuál lo quieres cambiar, y donde debe buscar.
$reemplaza = str_replace("-"," ",$otracadena);

Aquí lo que haríamos sería, dentro de la variable $otracadena, cambiar los espacios por -. 
Para conseguir cambiar sólo un guión, añadimos un nuevo argumento, esta vez opcional. count, que es el que indica cuantas veces queremos que se realice el cambio (empezando por el principio).

$reemplaza = str_replace("-"," ",$otracadena,1);

En esta ocasión, el resultado sería "hola mundo-fin".

Esto es sólo un pequeño ejemplo de las operaciones que se pueden realizar. Hay muchísimas más funciones. Para ver el listado completo, pulsa aquí.

_________________________

Operaciones con ficheros

En esta sección vamos a ver como cargar ficheros externos y trabajar con ellos.

Primero, el código, como siempre


La función es fopen(). Los argumentos que le indicamos son el nombre de fichero, y el modo que queremos abrirlo.

Los modos de apertura son


Ejemplo:

$nombrefichero="archivo.txt"
fopen($nombrefichero,"w")

Aquí estaríamos creando una variable en la que hacemos mención a un fichero, y lo abrimos en modo de escritura con esa función. Si no existe el fichero archivo.txt al abrirlo en modo de edición nos lo creará. Es igual que cuando en Linux escribes nano archivo.txt. Si no existe, lo va a crear ahí mismo.

Todo esto lo hacemos dentro de un if en el que le decimos:

if($descriptorarchivo = fopen($nombrefichero,"w")){
}else{
print "Imposible abrir fichero para escritura.";
}

Para que, si ha podido cargarlo, lo guarde en la variable $descriptorarchivo. Si no puede, mostrar el texto "Imposible abrir fichero para escritura"

Para introducir texto en él:

fputs($descriptorarchivo,"Hola y adiós. FIN.");
fputs($descriptorarchivo," Último texto...");

miércoles, 15 de enero de 2014

Día 43. Iniciación a PHP (II)

Querido diario;

Hoy he llegado tarde por las clases de inglés del proyecto Leonardo, pero me pongo al día enseguida.

Seguimos viendo ejemplos para aprender PHP.

Por ejemplo, para ver la información de nuestro servidor PHP podemos crear un documento .php con la siguiente información:


Y el resultado será el siguiente:


_________________________

Si queremos trabajar concatenando textos lo haremos con el punto ( . ).
En este código se ve mejor:


El resultado sería en la primera fila un texto, y en la segunda la concatenación de dos. Quedaría así

1234
4321 Fin.

_________________________

Si queremos combinar variables con la concatenación de textos, sería un ejemplo cómo éste:


En esta ocasión el resultado que veríamos será

La suma de 32 más 8 es igual a 40
 _________________________

Ahora vamos a jugar con estructuras condicionales


Vemos que realmente en esta ocasión no se modifica tan apenas lo que aprendimos en JavaScript
Las condiciones de if y else se mantienen, lo único que cambia es la forma de sacar texto por pantalla y la declaración de variables (que ya es bastante...).

Si comprobamos que la variable a vale 5 y la b vale 2, sabremos que en nuestro texto vamos a ver

5 es mayor que 2
 _________________________

Y para usar los bucles while y for:


Si escribimos después del echo \n indicamos que es un caracter de escape. Le decimos al comando echo que ya se ha acabado la línea

El resultado sería este (pongo captura de while y for)

viernes, 10 de enero de 2014

Día 42. Introducción a PHP

Querido diario;

Hoy comenzamos con el PHP, pero lo vamos a ver de manera práctica, probando ejercicios.

Los trabajos los almacenaremos en C:\wamp\www\proyectos (esta última carpeta la creamos nosotros)

En la carpeta www es donde nos arrancan todos los proyectos. Para entrar ahí, en el navegador, escribimos localhost (con el servidor WAMP encendido).

Nos aparecerá esto



Vamos a ejercicios y dentro elegimos nuestro nuevo archivo, ejercicio1.php


Si hubiésemos llamado al archivo index.php se abriría automáticamente. En este fichero, hemos escrito este código


Y lo que veremos en el navegador será
HOLA

El mecanísmo para sacar cosas por pantalla es echo o printf, y aquello que ponga entre comillas es lo que sacará por pantalla.

Si esto mismo lo ejecutamos sin tener nuestro servidor encendido, lo que nos mostrará el navegador será la pantalla en blanco o, en su defecto, el código sin compilar. Esto es porque lo estamos ejecutando sin servidor, el cliente no lo sabe compilar correctamente.

Volvemos a encender nuestro servidor, y ahora probamos el segundo código.


Y lo que mostrará por pantalla es:

Hola. Y adiós...
Si da problemas con los acentos, hay que colocar despues de <?php este código

header('Content-Type: text/html; charset=UTF-8');

O también está la posibilidad de modificar el archivo .htaccess y en la linea que pone AddDefaultCharset escribir:

AddDefaultCharset off

o en su defecto, indicale el idioma

AddDefaultCharset utf-8 

Veamos otro código:



Lo que estamos viendo aquí, sobre todo, son lsa diferentes formas de realizar un comentario en las lineas 2 a 6, como sacar por pantalla texto en las lineas 8 a 12 y empezar a usar variables en el resto del documento.

La salida por pantalla sería