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: hymsoft en 22 de Mayo 2017, 23:06

Título: Funciones cadenas string caracteres PHP concatenacion STRLEN SUBSTR (CU00821B)
Publicado por: hymsoft en 22 de Mayo 2017, 23:06
Buenas!!! Solución al ejercicio CU00821B del manual de programación web con PHP y editor Notepad++.

Citar
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>>
Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>CU00821B - Solución</title>
</head>
<body>
<?php		//variables		                $miCadena = "Didactica y divulgacion de la programacion";		$subCadena1 = substr($miCadena,0,9);		$subCadena2 = substr($miCadena,10,1);		$subCadena3 = substr($miCadena,12,11);		$subCadena4 = substr($miCadena,24,2);		$subCadena5 = substr($miCadena,27,2);		$subCadena6 = substr($miCadena,30,12);			echo "Las palabras primera, tercera y sexta son: " . $subCadena1 . ", " . $subCadena3 . ", " . $subCadena6 . "<br><br>";			echo "La palabra primera es " . $subCadena1 .  " y tiene " . strlen($subCadena1) . " caracteres,";		echo " la palabra tercera es " . $subCadena3 .  " y tiene " . strlen($subCadena3) . " caracteres.";		echo " La palabra sexta es " . $subCadena6 .  " y tiene " . strlen($subCadena6) . " caracteres,";	?>

</body>
</html>

Acceso web: http://hymsoft.byethost33.com/CU00821B.php (http://hymsoft.byethost33.com/CU00821B.php)

Podrías explicarme porque cuando uso acentos, substr se comporta de manera extraña??? cambiándome la cantidad de caracteres eh incluso imprimiendo caracteres no reconocidos???

Saludos!!!!
Título: Re:Funciones cadenas string caracteres PHP concatenacion STRLEN SUBSTR (CU00821B)
Publicado por: pedro,, en 25 de Mayo 2017, 10:03
Buenas hymsoft.

Si usas los acentos tienes que tener en cuenta que cada acento se cuenta como un carácter más. Prueba a cambiar esta parte:
Código: [Seleccionar]
$miCadena = "Didáctica y divulgación de la programación";
        $subCadena1 = substr($miCadena,0,10);
        $subCadena2 = substr($miCadena,11,1);
        $subCadena3 = substr($miCadena,13,12);
        $subCadena4 = substr($miCadena,26,2);
        $subCadena5 = substr($miCadena,29,2);
        $subCadena6 = substr($miCadena,32,13);

Saludos. ;D