Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 05 de Mayo 2016, 17:21
-
Buenas tardes. Aquí os expongo una posible solución del ejercicio CU00821B del curso PHP desde cero.
EJERCICIO
Crea el código PHP que cumpla con lo que se indica a continuación:
a) Declara una variable cuyo contenido sea la cadena "Didáctica y divulgación de la programación"
b) Usando la función substr extrae cada una de las palabras de la cadena anterior a una variable. Como tenemos 6 palabras, debes tener 6 variables con las subcadenas.
c) Usando la concatenación muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación>>
d) Usando strlen muestra por pantalla lo siguiente: <<La palabra primera es Didáctica y tiene 9 caracteres, la palabra tercera es divulgación y tiene 11 caracteres. La palabra sexta es programación y tiene 12 caracteres>>
<?php
$cad = "Didáctica y divulgación de la programación";
$sub1 = substr($cad, 0, 10);
$sub2 = substr($cad, 11, 1);
$sub3 = substr($cad, 13, 12);
$sub4 = substr($cad, 26, 2);
$sub5 = substr($cad, 29, 2);
$sub6 = substr($cad, 32, 13);
echo "Las palabras primera, tercera y sexta son: ".$sub1.", ".$sub3.", ".$sub6."<br>";
echo "La palabra primera es ".$sub1." y tiene ".(strlen($sub1)-1)." caracteres, la palabra tercera es ".$sub3." y tiene ".(strlen($sub3)-1)." caracteres. La palabra sexta es ".$sub6." y tiene ".(strlen($sub6)-1)." caracteres";
?>
Observación: viniendo del curso JavaScript allí cuando sustraes alguna subcadena se hace mediante dos parámetros: substring(par1, par2), donde el par1 es el primer carácter donde empieza la subcadena y el segundo es donde acabará la sustracción de la subcadena (el segundo queda excluido).
Por lo visto, en PHP no es así. Con el método "substr" tenemos también dos posibles parámetros, pero el segundo no significa el carácter donde se acabará la sustracción de la subcadena, sino cuantos carácteres se tendrán que sustraer a partir de la posición que le habíamos asignado en el primer parámetro.
Es, un poco, confuso.
Gracias.
-
Hola dimiste.
Los códigos propuestos están bien.
Para que sean perfectos, recordarte que cierres las etiquetas html que solo tengan un tag.
<br/>
Ahora te resulta confuso porque has estado durante mucho tiempo con JavaScript, pero con el tiempo no te costará, y no tratarás de comparar un lenguaje con otro, simplemente actuarás en consecuencia con el lenguaje que toque utilizar.
Saludos. ;D
-
Buenos días, Pedro.
Graicas por la corrección.
Espero que sea como tu dices, que con el tiempo no intente comparar los diferentes lenguajes.
Es verdad, siempre me olvido de cerrar las etiquetas que tienes sólo un tag.
Saludos :)
-
Hola!
Al probar el código he obtenido
Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación
La palabra primera es Didáctica y tiene 9 caracteres, la palabra tercera es divulgación y tiene 11 caracteres.
La palabra sexta es programación y tiene 12 caracteres
Este resultado puede diferir según la configuración del navegador que estemos usando. Pero querremos que nuestra web se vea bien en cualquier navegador y configuración, por ello para evitar esto... ya se sabe, el meta charset...
Saludos!
-
Buenas, César.
Gracias por tu aportación. Pero cómo tengo que ponerlo? así:
<?php
$cad = "Didáctica y divulgación de la programación";
$sub1 = substr($cad, 0, 10);
$sub2 = substr($cad, 11, 1);
$sub3 = substr($cad, 13, 12);
$sub4 = substr($cad, 26, 2);
$sub5 = substr($cad, 29, 2);
$sub6 = substr($cad, 32, 13);
echo "<meta charset='utf-8'/>";
echo "Las palabras primera, tercera y sexta son: ".$sub1.", ".$sub3.", ".$sub6."<br>";
echo "La palabra primera es ".$sub1." y tiene ".(strlen($sub1)-1)." caracteres, la palabra tercera es ".$sub3." y tiene ".(strlen($sub3)-1)." caracteres. La palabra sexta es ".$sub6." y tiene ".(strlen($sub6)-1)." caracteres";
?>
o así:
<?php
$cad = "Didáctica y divulgación de la programación";
$sub1 = substr($cad, 0, 10);
$sub2 = substr($cad, 11, 1);
$sub3 = substr($cad, 13, 12);
$sub4 = substr($cad, 26, 2);
$sub5 = substr($cad, 29, 2);
$sub6 = substr($cad, 32, 13);
echo "<!DOCTYPE html><html><head><meta charset='utf-8'/></head><body>";
echo "Las palabras primera, tercera y sexta son: ".$sub1.", ".$sub3.", ".$sub6."<br>";
echo "La palabra primera es ".$sub1." y tiene ".(strlen($sub1)-1)." caracteres, la palabra tercera es ".$sub3." y tiene ".(strlen($sub3)-1)." caracteres. La palabra sexta es ".$sub6." y tiene ".(strlen($sub6)-1)." caracteres</body></html>";
?>
Gracias.
-
Hola! De ambas maneras funciona así que veo bien ponerlo de cualquiera de las dos. Yo prefiero la segunda porque así generas un documento HTML válido pero en este curso lo importante es php (y que las cosas se vean bien ;D)
Saludos!