You are on page 1of 9

Para declarar variables en php debemos anteponer el signo $ al nombre de la misma, para asignarle un valor continuamos con el signo

igual y el valor de la misma, en caso de ser un texto va a ir entre comillas en caso de ser un nmero no se deben poner las comillas sino lo tomar como texto: <?php $usuario=administrador; ?> Para concatenar variables en php debemos usar el signo .(punto), por ejemplo crear 3 variables, la primera y la segunda las concatenar en la tercera: <?php $texto1=Estamos concatenando ; $texto2=un texto; $texto3=$texto1.$texto2; ?> De ese modo la variable $texto3 mostrar: Estamos concatenando un texto

Lee mas en: http://altamiraweb.net/declarar-y-concatenar-variables-enphp#ixzz278KRzcF5

CURSO DE PHP Y MYSQL GRATIS


Introduccin - CADENAS
Si pensamos en los tipos de datos que circulan por la red, llegaremos a la conclusin de que una gran porcin la ocupan las imgenes, animaciones en Macromedia Flash, videos o subprogramas escritos en Java. La otra gran porcin, mayoritaria, son los textos o las cadenas de caracteres. Las cadenas de caracteres o string son secuencias de caracteres que pueden ser tratadas como una unidad, asignadas a variables, pasadas como parmetros a funciones o enviadas como salida al navegador. Un string se diferencia de otro tipo de dato en PHP 5, porque va encerrado entre comillas

dobles ( ") o simples ( ' ) . "Cadena entre comillas dobles" 'Cadena entre comillas simples' PHP interpreta de distinta forma las cadenas que van entre comillas dobles y las que van entre comillas simples. Losstrings entre comillas dobles pueden sustituir ciertos smbolos por acciones, como la inclusin del valor de una variable. Las comillas simples, simplemente muestran todo el contenido, sin atender a caracteres especiales. Podemos ver un ejemplo donde sucede esto: <?php $variable = "Domingo"; $frase_l = "Hoy es $variable, el cielo est gris"; $frase_2 = 'Hoy es $variable, el cielo est gris'; echo $frase_l; echo $frase_2; ?> El resultado en el navegador es: Hoy es Domingo, el cielo est gris Hoy es $variable, el cielo est gris Como se puede observar, la cadena $f r a s e _ l es capaz de sustituir la variable por su valor, por el simple hecho de estar entre comillas dobles. Propiedades de las cadenas ndices de string Si pensamos en las cadenas como una sucesin de caracteres en un orden determinado, podemos llegar a desear acceder libremente a parte de los caracteres. Esto es posible gracias a los smbolos de llave ({ } ) y un ndice numrico que se corresponder con la posicin del carcter que buscamos. El ejemplo muestra cmo crear una funcin que duplica las letras de una cadena aprovechando esta forma de acceder a los caracteres: <?php function duplicar_caracteres($cadena) { $tamanio = strlen ($cadena) ; $cadena_auxiliar = ""; for ($x = 0;$x < $tamanio; $x++) { $cadena_auxiliar = $cadena_auxiliar . $cadena{$x} $cadena{$x}; } return $cadena_auxiliar; } $cadena = "Duplicar las letras"; echo duplicar_caracteres($cadena) ?>

Operadores
En este punto, aprovecharemos para hacer un breve repaso de los operadores de string vistos en el captulo 3. En otros lenguajes, como Java, se utiliza el operador suma (+) para unir dos cadenas. En PHP este mismo resultado se obtiene con el operador punto (. ). As, podemos concatenar varias cadenas de la forma siguiente: <?php $cadenal = "Hola"; $cadena2 = "Mundo"; $cadena3 = "Qu tpico!"; $supercadena = $cadenal . " " . $cadena2 . " " . $cadena3; echo $supercadena;

?> Es fcil intuir que el operador puede concatenar caracteres y variables de tipo string de forma conjunta. Es posible que desee ahora aadir texto a una cadena ya existente; esto se puede hacer de dos formas muy similares. La primera es asignando a la variable su valor ms el valor a aadir, de la siguiente forma: <?php $cadenal = "Hola"; $cadena2 = "Mundo"; $cadenal = $cadenal . $cadena2; echo $cadenal; ?> O utilizando el operador de concatenacin y asignacin ( .= ), como en el ejemplo: <?php $cadenal = "Hola"; '$cadena2 = "Mundo"; $cadenal .= $cadena2; echo $cadenal; ?> Sintaxis para mltiples lneas Existe en PHP una forma ms de introducir cadenas, aparte de las comillas, muy recomendable para largos textos o un considerable conjunto de etiquetas HTML. La sintaxis es muy sencilla y comienza con el operador (<<<) seguido de una etiqueta que indica el principio del texto. Despus de esto podemos escribir un conjunto de caracteres muy numerosos y, para finalizar, la etiqueta de fin. El ejemplo muestra cmo almacenar un formulario en una variable: <?php $formulario = <<<INICIO <form> <nput type="text" name="Nombre" value="Lus Miguel Cabezas"> <br> <input type="submit" name="submit" value="Enviar" > </form> INICIO; echo $formulario; ?> Siempre debe comenzar por el operador (<<<), seguido de un identificador, por ejemplo INICIO. Despus se incluye el texto, en este caso un formulario y, para finalizar, la misma etiqueta de inicio. Esta forma de almacenar datos permite utilizar indistintamente comillas simples o dobles dentro de una variable.

Funciones de string
Si conoce el lenguaje C, podr comprobar que las funciones de manejo de caracteres son muy parecidas en nombre y uso. Los desarrolladores de PHP siempre han querido que exista esta similitud para facilitar el aprendizaje del lenguaje. La mayora de las funciones existentes en PHP 5 tienen una homologa en C. Tamao de la cadena La funcin s t r l e n () devuelve como resultado el tamao en caracteres de la cadena que pasemos de parmetro. Este valor puede asignarse a una

variable, como indica el ejemplo: <?php $cadena = "Esta cadena tiene muchas letras"; $numero_letras = strlen($cadena); echo "cadena tiene $numero_letras caracteres"; ?> Simplemente imprime: cadena tiene 31 caracteres Posicin de los caracteres Para crear buenos motores de bsqueda en nuestros sitios Web, necesitaremos potentes herramientas que sean capaces de buscar caracteres, cadenas o patrones coincidentes dentro de textos extensos. La funcin s t r p o s () encuentra en un string la posicin de un carcter determinado. <?php $cadena = "Esta cadena tiene muchas letras"; echo "La primera ocurrencia de 'a' es " . strpos($cadena, "a") "<br>"; echo "La primera ocurrencia de 'm' es " . strpos($cadena, "m") " <br>"; ?> La salida en el navegador no es otra que: La primera ocurrencia de 'a' es 3 La primera ocurrencia de 'm' es 18 Si s t r p o s () se utiliza para averiguar la posicin de la primera "L" mayscula de $ cadena vemos que nos devuelve un 0; esto es as porque el ndice de caracteres comienza en 0, como pasa en muchos lenguajes de programacin. Si no se encuentra ninguna ocurrencia del carcter buscado el resultado ser/a/se. La funcin s t r p o s () tambin puede utilizarse para buscar varios caracteres seguidos en una misma cadena: <?php $cadena = "Esta cadena tiene muchas letras"; echo "La primera ocurrencia de 'tiene' es " . strpos($cadena,"tiene") . "<br>"; ?> Si lo que nos interesa es encontrar caracteres buscando desde el final de la cadena la funcin que tenemos que utilizar es s t r r p o s () (la letra r que se aade viene del ingls reverse). El ejemplo anterior nos sirve para comprobar el funcionamiento de la funcin: <?php $cadena = "Esta cadena tiene muchas letras"; echo "La primera ocurrencia de 'a' es " . strpos($cadena, "a" ) "<br>"; echo "La primera ocurrencia desde atrs de 'a' es " . strrpos($cadena, "a") . "<br>"; ?> siendo el resultado: La primera ocurrencia de 'a' es 3 La primera ocurrencia desde atrs de 'a' es 29

Comparacin

El operador (==) nos puede servir para evaluar si dos cadenas de caracteres son iguales dentro de una estructura de control. Adems, tenemos la funcin strcmp ( ) , que compara bit a bit dos cadenas de caracteres. Atendiendo al valor de salida de la funcin, podemos obtener los siguientes resultados: Si el valor que se obtiene es 0, las dos cadenas son exactamente igual. Si obtenemos un valor negativo, el primer string es ms pequeo que el segundo. Si obtenemos un valor positivo, el primer string es ms grande que el segundo. <?php $cadenal = "Prueba"; $cadena2 = "Prueba"; if (strcmp($cadenal,$cadena2) == 0) { echo "Las dos cadenas son iguales"; } elseif (strcmp($cadenal,$cadena2) < 0) { echo "La cadenal es menor que la cadena2"; } else { echo "La cadenal es mayor que la cadena2" ; } ?> La comparacin anterior slo da como resultado "dos cadenas iguales", si las dos cadenas son exactamente iguales, haciendo distincin entre maysculas y minsculas. Para evitar este problema podemos utilizar la funcin s t r c a s e c m p ( ), que no es sensible a maysculas. As s t r c a s e c m p ("HoLa" , "hOlA") da como resultado 0, es decir, las dos cadenas son iguales.

Bsqueda de caracteres
Siguiendo con las bsquedas de texto, la funcin s t r s t r () recibe como parmetros una cadena de caracteres donde buscar y otra con un conjunto de caracteres que queremos encontrar. Si se encuentra el patrn de bsqueda, el resultado ser una cadena de caracteres que comenzar justo en el patrn, hasta el final del string primero. Si no se encuentra el patrn el resultado serfalse. < ?php $cadena = "Esta cadena tiene muchas letras"; echo "La primera ocurrencia de 'cadena' es: " . strstr ($cadena,"cadena") . "<br>"; ?> Como cabe esperar, el resultado es: La primera ocurrencia de 'cadena' es: cadena tiene muchas letras

Seleccin de subcadenas
La funcin s u b s t r () permite seleccionar un conjunto de caracteres de una cadena, quedando intacto el string original. Puede tomar varios parmetros: s u b s t r (cadena, n d i c e ) : Cadena es el conjunto de caracteres que queremos cortar e n d i c e la posicin a partir de la cual se cortar la cadena hasta el final. s u b s t r (cadena , n d i c e , numero) : Cadena es el conjunto de caracteres que queremos cortar e n d i c e la posicin a partir de la cual se cortar la cadena tantas posiciones como indique el nmero. Por ejemplo: <?php $cadena = "Esta cadena tiene muchas letras";

//Devuelve la cadena completa echo substr($cadena, 0); echo "<br>"; //Desde el carcter 12 hasta el final echo substr($cadena, 12); echo "<br>"; //Devuelve 6 caracteres desde el carcter 18 echo substr($cadena, 18,6); echo "<br>"; //Devuelve los 6 ltimos caracteres echo substr($cadena, -6); echo "<br>"; //Desde la posicin 26, contando desde atrs, 6 caracteres echo substr($cadena, -26,6); echo "<br>"; //Empezando en el carcter 4 y terminando en el 7 desde atrs echo substr($cadena, 4,-7); ?>

Sustitucin de cadenas
La funcin s t r _ r e p l a c e () toma como parmetros un conjunto de caracteres a buscar, un grupo que debe sustituirse por el anterior y una cadena de caracteres sobre la que actuar. <?php $cadena = "Esta cadena tiene muchas letras"; $cadena = str_replace("Esta","Este",$cadena); echo str_replace("cadena","conjunto",$cadena); ?> Si en la cadena existiera ms de una instancia del conjunto buscado, todas las ocurrencias quedaran cambiadas. <?php {cadena = "Esta cadena tiene muchas letras y cadenas"; $cadena = str_replac("Esta","Este",$cadena); echo str^replace("cadena","conjunto",$cadena); ?> El resultado es: Este conjunto tiene muchas letras y conjuntos Truco: Puede probar esta funcin para cambiar todos os caracteres de un tipo de una cadena de a siguiente forma: s t r _ r e p l a ce ("h", " j " , "hola h o l a " ).

Funciones de mayscula y minscula


Las funciones strtolower () y strtoupper () devuelven la cadena que se pasa como argumento, completamente en minscula o mayscula respectivamente. <?php $cadena = "Hay palabras en MAYSCULAS y en minsculas<br>" ; echo strtolower($cadena) ; echo strtoupper($cadena); ?> El resultado es: hay palabras en maysculas y en minsculas HAY PALABRAS EN MAYSCULAS Y EN MINSCULAS

Si lo que realmente nos interesa es que la primera letra de un texto aparezca como letra Capital o, que letras iniciales de cada palabra en una frase aparezcan en mayscula, tenemos las funciones u c f i r s t ( ) y ucwords(). <?php $cadena = "haba una vez...<br>"; echo ucfirst($cadena); $cadena2 = "linux user group"; echo "LUG significa " . ucwords($cadena2) ; ?>

Expresiones regulares
Las funciones vistas anteriormente basan su potencia en la bsqueda o sustitucin de los caracteres de una cadena, pero son poco tiles cuando tratamos de comprobar si un conjunto de caracteres cumple un formato determinado. Si solicitamos mediante un formulario un correo electrnico, necesitamos saber, a priori, si ese correo por lo menos est bien construido: luis@nccextremadura.org luis@zend.com La idea es poder descartar de alguna forma los correos escritos de esta manera: l u i s (Snccextremadura.org //Espacio en medio LUIS@zend.com //En maysculas luis@@aupex.org //Dos @ Las expresiones regulares son patrones de bsqueda dentro de cadenas. Estos patrones se construyen mediante caracteres especiales que cumplen unas reglas determinadas. Los caracteres no especiales, como un grupo de letras, se escriben como de costumbre. Indica que hay que buscar el patrn desde el principio de la cadena.

aabb

$ * +

Este simbolo obliga al patrn a cumplirse hasta el final de la cadena. Simboliza cualquier carcter. Indica que puede haber O o ms instancias de una expresin. Indica que puede haber 1 o ms instancias de una expresin. Indica que se puede encontrar el carcter a o el b y la expresinsera correcta. Lo podemos acompaar de [ab] * para evaluar si hay varias letras seguidas del tipo a o b.

[ab]

[a-z]

Indica que se puede elegir entre un rango de caracteres que va desde la a hasta la z. Si queremos utilizar cualquiera de los anteriores caracteres como parte del patrn tendremos que utilizar ste smbolo para indicarle a PHP que es un literal.

Como ejemplo vamos a intentar hacer un patrn que verifique si un correo electrnico est correctamente construido o no. Sera fcil pensar en una expresin parecida a la siguiente:

[ a - z ] + @ [ a - z ] + \ . o rg La primera parte, [a-z] +, nos dice que aceptar una letra, o conjunto de letras, sin espacios y en minsculas, que pueden corresponderse con el nombre de usuario de la cuenta de correo. Despus aceptar un smbolo @, seguido de otro conjunto de caracteres, correspondientes al servidor de correo. La ltima parte de la expresin la componen los smbolos \ ., que indican que tiene que aparecer un punto que separe la descripcin del servidor del dominio y la cadena o r g , que obliga a que todos los correos sean de dominio no gubernamental. La expresin anterior tiene algunas limitaciones, que veremos como solventar. La primera es que se puede aplicar a cualquier texto, con independencia del tamao. Si en alguna parte de ese texto aparece un conjunto de caracteres que cumpla con la expresin, la validacin sera true. Esto no es bueno cuando queremos chequear si un correo es introducido correctamente. La solucin es aplicar las reglas de inicio y fin que obligan a que el comienzo de la cadena y el final sean parte de la expresin. [ a - z ]+@[ a - 2 ] + \ . o r g$ Tambin podemos encontrarnos con que existen correos introducidos correctamente, pero el dominio es otro distinto a org. Esta vez la solucin es introducir el operador O lgico |, que permite elegir entre varias opciones: ^ [ a - z ] +@ [ a - z ] + \ . ( o r g | c o m | n e t )$ Por ltimo, un problema menor, aunque habitual en el mbito de los correos electrnicos, es la utilizacin de signos de puntuacin para separar nombres y apellidos y servidores de servidores virtuales. Por ejemplo, el correo siguiente es correcto, pero no sera evaluado por la expresin anterior: lus.cabezas@ncc.aupex.org Una posible solucin es: *[a-z|\.]+@[a-z|\.]+\.(org|com(net)$

Comprobar expresiones regulares


La funcin ereg () es capaz de comprobar si una cadena se corresponde con el patrn que se pasa como parmetro. Toma dos argumentos obligatorios, una expresin regular y una cadena de caracteres donde buscar el patrn. Seguidamente puede ver un ejemplo completo de utilizacin de expresiones regulares y la funcin: <?php $correo = "luis.cabezas@ncc.aupex.org"; $correol = "LUIS@ncc.aupex.org"; $correo2 = "lu@is.cabezas@ncc.aupex.org"; if (ereg ("* [a-z|\.]+@[a-z|\.]+\. (org|com|net)$",$correo)) { echo "El correo $correo se acepta.<br>"; } else { echo "El correo $correo no cumple el patrn.<br>"; } f (ereg("^ [a-z|\.]+@ [a-z|\.]+\. (org|comjnet)$",$correol) ) { echo "El correo $correol se acepta.<br>"; }else { echo "El correo $correol no cumple el patrn.<br>"; } if (ereg("A [a-zj\.]+@ [a-zj\.]+\. (org|com|net)$",$correo2)) { echo "El correo $correo2 se acepta.<br>"; }else {

echo "El correo $correo2 no cumple el patrn.<br>"; } ?> Puesto que hay muchos usuarios acostumbrados a escribir su correo electrnico completamente en maysculas, se hace necesario comprobar este contratiempo tambin. Lo ms rpido es utilizar la funcin e r e g i () , que funciona exactamente igual que e r e g ( ) , pero no es sensible a mayscula o minscula. El ejemplo anterior lo podemos arreglar de la siguiente forma: <?php $correo = "LUIS@ncc.aupex.org"; if (ereg(""[a-z|\.]+@[a-z|\.]+\.(org|com|net)$",$correo,$pepe)) { echo "El correo $correo se acepta.<br>" ; } else { echo "El correo $correo no cumple el patrn.<br>"; } ?>

Reemplazar patrones
ereg_replace () y e r e g i _ r e p l a c e () tiene tres parmetros. El primero es una expresin regular, el segundo un string por el que se cambiarn todas las ocurrencias del patrn y, por ltimo, una cadena donde buscar. Como antes, la diferencia entre las dos es nicamente que la primera es sensible a maysculas. El siguiente ejemplo muestra el funcionamiento: <?php $texto = "El correo es de luis@ncc.aupex.org"; echo ereg_replace("[a-z|\.]+@[a-z|\.]+\.(org|com|net)","Luis Miguel",$texto); ?> As da como resultado el cambio del correo electrnico por el nombre de la persona asociada.

Resumen
Desde hace unos aos se ha puesto de moda una serie de productos donde prima el contenido frente al diseo. Los CMS (Content Manager System) son programas, la mayora escritos en PHP, que permiten gestionar mucho contenido escrito por diferentes personas. El tratamiento de los textos se agudiza al mximo en este caso, siendo indispensable la utilizacin de expresiones regulares para verificar los datos nuevos que puedan incor- . porarse. Adems, suelen llevar un buscador capaz de encontrar patrones determinados dentro de las noticias expuestas. Este captulo le ha servido para conocer funciones para concatenar, recortar o verificar cadenas. Con esto bien aprendido ya puede comenzar a crear su propio CMS.

You might also like