Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Dimitar Stefanov

Páginas: 1 2 3 4 [5] 6 7 8 9 10 ... 14
81
Buenas tardes.

Mediante la presente empiezo el curso de Ajax desde cero.

Citar
EJERCICIO

Tomando como punto de partida el código de ejemplo que hemos visto en esta entrega, realiza las modificaciones oportunas en los archivos php y html para:

a) Definir una url asociada a cada ciudad (usa la url de la ciudad en wikipedia, por ejemplo para la ciudad Medellín será https://es.wikipedia.org/wiki/Medell%C3%ADn)

b) Hacer que cuando se elige un país en el combobox, cada ciudad aparezca con el link a su url en wikipedia y que si se pulsa en ese link se abra una nueva ventana en el navegador mostrando la url correspondiente.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Cursos aprende a programar</title>
<meta charset="utf-8">
<style type="text/css">
*{
font-family:sans-serif;
}
a:link{
text-decoration:none;
}
select{
font-size:18px;
}
div div{
color: blue; background-color:#F1FEC6;
font-size: 20px;
float:left; border: solid;
margin: 20px; padding:15px;
}
</style>
<script>

function mostrarSugerencia(str){
var xmlhttp;
var contenidosRecibidos = new Array();
var nodoMostrarResultados = document.getElementById('listaCiudades');
var contenidosAMostrar = '';
var paises = str;
var ciudades = new Array(2);
ciudades['spain'] = ["https://es.wikipedia.org/wiki/Madrid", "https://es.wikipedia.org/wiki/Barcelona","https://es.wikipedia.org/wiki/Valencia","https://es.wikipedia.org/wiki/Sevilla","https://es.wikipedia.org/wiki/Zaragoza","https://es.wikipedia.org/wiki/M%C3%A1laga","https://es.wikipedia.org/wiki/Murcia"];

ciudades['mexico'] = ["https://es.wikipedia.org/wiki/Ciudad_de_M%C3%A9xico","https://es.wikipedia.org/wiki/Ecatepec_de_Morelos","https://es.wikipedia.org/wiki/Guadalajara_%28M%C3%A9xico%29","https://es.wikipedia.org/wiki/Puebla","https://es.wikipedia.org/wiki/Ciudad_Ju%C3%A1rez","https://es.wikipedia.org/wiki/Tijuana","https://es.wikipedia.org/wiki/Le%C3%B3n_%28Guanajuato%29","https://es.wikipedia.org/wiki/Zapopan"];

ciudades['argentina'] = ["https://es.wikipedia.org/wiki/Buenos_Aires","https://es.wikipedia.org/wiki/Buenos_Aires","https://es.wikipedia.org/wiki/Rosario_%28Argentina%29","https://es.wikipedia.org/wiki/La_Plata","https://es.wikipedia.org/wiki/Mar_del_Plata","https://es.wikipedia.org/wiki/San_Miguel_de_Tucum%C3%A1n","https://es.wikipedia.org/wiki/Ciudad_de_Salta"];

ciudades['colombia'] = ["https://es.wikipedia.org/wiki/Bogot%C3%A1","https://es.wikipedia.org/wiki/Medell%C3%ADn","https://es.wikipedia.org/wiki/Cali","https://es.wikipedia.org/wiki/Barranquilla","https://es.wikipedia.org/wiki/Barranquilla","https://es.wikipedia.org/wiki/C%C3%BAcuta","https://es.wikipedia.org/wiki/Soledad_%28Atl%C3%A1ntico%29","https://es.wikipedia.org/wiki/Ibagu%C3%A9"];


if(str.length==0){
document.getElementById("txtInformacion").innerHTML="";
nodoMostrarResultados.innerHTML = '';
return;
}

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
    contenidosRecibidos = xmlhttp.responseText.split(",");
    document.getElementById("txtInformacion").innerHTML=contenidosRecibidos[0];
    for(var i=1; i<contenidosRecibidos.length;i++){
    contenidosAMostrar = contenidosAMostrar+'<div id="ciudades'+i+'"> <a href="'+ciudades[paises][(i-1)]+'" target="_blank">' + contenidosRecibidos[i]+ '</a></div>';
    }
    nodoMostrarResultados.innerHTML = contenidosAMostrar;
}
}

xmlhttp.open("GET"," CU01206F(01).php?pais="+str);
xmlhttp.send();
}

</script>
</head>
<body style="margin:20px;">
<h2>Elige un país:</h2>
<form action="">
 <select onchange="mostrarSugerencia(this.value)">
  <option value="none">Elige</option>
  <option value="spain">España</option>
  <option value="mexico">México</option>
  <option value="argentina">Argentina</option>
  <option value="colombia">Colombia</option>
</select>
</form>
<br/>
<p>Informacion sobre operacion en segundo plano con Ajax: <span style="color:brown;" id="txtInformacion"></span></p>
<div id="listaCiudades"></div>
</body>
</html>

Código PHP:

Código: [Seleccionar]
<meta charset = "utf-8"/>
<?php // Datos

$pais[0]="spain"
$pais[1]="mexico"
$pais[2]="argentina"
$pais[3]="colombia";

$ciudad[0][0]="Madrid"
$ciudad[0][1]="Barcelona"
$ciudad[0][2]="Valencia"
$ciudad[0][3]="Sevilla";
$ciudad[0][4]="Zaragoza"
$ciudad[0][5]="Málaga"
$ciudad[0][6]="Murcia";
$ciudad[1][0]="México D.F."
$ciudad[1][1]="Ecatepec"
$ciudad[1][2]="Guadalajara"
$ciudad[1][3]="Puebla";
$ciudad[1][4]="Juárez"
$ciudad[1][5]="Tijuana"
$ciudad[1][6]="León"
$ciudad[1][7]="Zapopan";
$ciudad[2][0]="Buenos Aires"
$ciudad[2][1]="Córdoba"
$ciudad[2][2]="Rosario"
$ciudad[2][3]="La Plata";
$ciudad[2][4]="Mar del Plata"
$ciudad[2][5]="San Miguel de Tucumán"
$ciudad[2][6]="Ciudad de Salta";
$ciudad[3][0]="Bogotá"
$ciudad[3][1]="Medellín"
$ciudad[3][2]="Cali"
$ciudad[3][3]="Barranquilla";
$ciudad[3][4]="Cartagena"
$ciudad[3][5]="Cúcuta"
$ciudad[3][6]="Soledad"
$ciudad[3][7]="Ibagué";
 
// Rescatamos el parámetro pais que nos llega mediante la url que invoca xmlhttp
$paisRecibido=$_REQUEST["pais"]; 
$ciudadesDevueltas="";
$existePais false;

for(
$i=0;$i<count($pais);$i++){     
if($paisRecibido == $pais[$i]){
$indicePais $i
$existePais=true;

}

$msg 'El pais recibido por get en segundo plano es '.$paisRecibido;
if(
$existePais){
$msg $msg' y tiene indice '.$indicePais;
}

$ciudadesRespuesta "";

//  Creamos el array a devolver
for($i=0$i<count($ciudad[$indicePais]); $i++){
    
$ciudadesRespuesta $ciudadesRespuesta.",".$ciudad[$indicePais][$i];
}

echo 
$msg.$ciudadesRespuesta;
//echo count($ciudad[1]);
?>

Gracias.

82
Bueanas noches. Mediante la presente entrega propongo una posible solución de los ejercicios de la entrega CU00844B del curso PHP.

Citar
EJERCICIO 1

Realiza una consulta y muestra por pantalla los datos correspondientes a filas de la tabla agenda donde la edad sea mayor o igual que 20 y la altura sea mayor o igual que 1.75.

Código: [Seleccionar]
<?php 

function 
mostrarDatos($fila){

if($fila['edad'] >= 20 && $fila['altura'] >= 1.75){
echo "Nombre: ".$fila['nombre']."<br>Apellidos: ".$fila['apellidos']."<br>Dirección: ".$fila['direccion']."<br>Teléfono: ".$fila['telefono']."<br>Edad: ".$fila['edad']."<br>Altura: ".$fila['altura']."<br><br><br>";
}

}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda");
echo "Datos encontrados en la base de datos para los registros con una edad mayor o superio a 20 años y con una altura mayor o superior a 1,75cm: <br><br>";
while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}

mysqli_free_result($result);
mysqli_close($link);

?>

Citar
EJERCICIO 2

Crea una tabla que sea copia de agenda a la que denomines agenda3 y un archivo php que al ejecutarlo realice los siguientes procesos:

a) Mostrar el contenido inicial de la tabla agenda3 por pantalla.

b) Eliminar todos los registros de la tabla agenda3 cuyo campo edad sea mayor o igual a 34 y mostrar el contenido actual de la tabla por pantalla.

c) Insertar dos nuevos registros en la tabla agenda3 (elige tú unos datos cualquiera) y mostrar el contenido actual de la tabla por pantalla.

d) Eliminar todos los registros de la tabla agenda3 usando TRUNCATE y mostrar el contenido actual de la tabla por pantalla.

e) Insertar tres nuevos registros en la tabla agenda3 (elige tú unos datos cualquiera) y mostrar el contenido actual de la tabla por pantalla.

f) Eliminar todos los registros de la tabla agenda usando DELETE sin condiciones y mostrar el contenido actual de la tabla por pantalla.

Código: [Seleccionar]
<?php 

function 
mostrarDatos($fila){
echo "Nombre: ".$fila['nombre']."<br>Apellidos: ".$fila['apellidos']."<br>Dirección: ".$fila['direccion']."<br>Teléfono: ".$fila['telefono']."<br>Edad: ".$fila['edad']."<br>Altura: ".$fila['altura']."<br><br>";
}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "Datos iniciales de la base de datos: <br><br>";

while ($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}
mysqli_free_result($result);

mysqli_query($link"DELETE FROM agenda3 WHERE edad >= 34");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después del primer borrado: <br><br>";

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}
mysqli_free_result($result);



mysqli_query($link"INSERT INTO agenda3 VALUES('Enrique', 'Pans Gutierréz', 'C/ General Contreras N54', '643087243', 28, 1.83)");
mysqli_query($link"INSERT INTO agenda3 VALUES('Pepita', 'Muñoz Castellano', 'C/ Catalunya N8', '621980954', 42, 1.70)");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de la primera incorporación de dos registros nuevos: <br><br>";

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}
mysqli_free_result($result);

mysqli_query($link"TRUNCATE TABLE agenda3");

$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de ejecutar la instrucción TRUNCATE TABLE: <br><br>";
while($fila mysqli_fetch_array($fila)){
mostrarDatos($fila);
}
mysqli_free_result($result);


mysqli_query($link"INSERT INTO agenda3 VALUES('Montserrat', 'Ballesteros Alvarez', 'C/ Panamá N30', '623098523', 21, 1.63)");
mysqli_query($link"INSERT INTO agenda3 VALUES('Alberto', 'Parrales Puis', 'C/ Aragón N203', '634078543', 44, 1.92)");
mysqli_query($link"INSERT INTO agenda3 VALUES('Manuel', 'Oto Portales', 'C/ Argentina N23', '632151785', 31, 1.82)");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de la segunda incorporación de dos registros nuevos: <br><br>";

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}

mysqli_free_result($result);

mysqli_query($link"DELETE FROM agenda3");
$result mysqli_query($link"SELECT * FROM agenda3");
echo "***************************************************<br><br>Datos después de ejecutar la instrucción DELETE sin condiciones: <br><br>";

while($fila mysqli_fetch_array($fila)){
mostrarDatos($fila);
}

?>

Como es la última entrega de ejercicios para este curso, quería expresar mis más sinceras agradecimientos a todo el equipo de aprenderaprogramar.com el que haya hecho posible que se lleve a cabo el mismo. También quería agradecer a todos mis compañeros que han estado corregiendo mis ejercicios o me hayan podido aportar conocimientos nuevos. He aprendido muchísimo gracias al curso PHP desde cero de aprenderaprogramar.com y lo recomiendo a todo aquel que se plantea hacerlo.

Gracias.

83
Buenas tardes. A continuación expongo una posible solución del ejercicio CU00843B del curso PHP desde cero.

Citar
EJERCICIO

Inserta en la tabla agenda de la base de datos que estamos utilizando los datos de una persona cuyo nombre es Jesús Murillo Moreno, de 34 años, cuyo teléfono es 655221122, vive en c/Pintor Murillo nº33, y tiene una altura de 1.67 metros. Presta atención al orden en que debes introducir los datos. Una vez realizada la inserción, comprueba visualizando los registros existentes en la tabla que la inserción se haya realizado correctamente. Luego accede al panel de administración del servidor y a la base de datos con phpMyAdmin. Visualiza los registros en la tabla y borra la fila correspondiente a Jesús Murillo Moreno utilizando phpMyAdmin. Como puedes comprobar, podemos operar sobre la tabla tanto a través de phpMyAdmin como a través de código PHP.

Código: [Seleccionar]
<?php 

function 
mostrarDatos($resultados){
if($resultados != NULL){
echo "-Nombre: ".$resultados['nombre']."<br>";
echo "-Apellidos: ".$resultados['apellidos']."<br>";
echo "-Dirección: ".$resultados['direccion']."<br>";
echo "-Teléfono: ".$resultados['telefono']."<br>";
echo "-Edad: ".$resultados['edad']."<br>";
echo "*********************************<br>";
}else{
echo "<br>No hay más datos!!! <br>";
}
}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
mysqli_query($link"INSERT INTO agenda VALUES('Jesús', 'Murillo Moreno', 'C/ Pintor Murillo 33', '655221122', 34, 1.67)");
echo "Los datos se han insertado correctamente en la base de datos <br><br>";

$result mysqli_query($link"SELECT * FROM agenda");

while($fila mysqli_fetch_array($result)){
mostrarDatos($fila);
}

mysqli_free_result($result);
mysqli_close($link);

?>

Gracias.

84
Buenas tardes. Hago entrega de los ejercicios de la entrega CU00842B del curso básico de programador web: PHP desde cero.

Citar
EJERCICIO 1

Utilizando la tabla agenda que hemos empleado en los ejemplos y funciones para manejo de cadenas PHP, realiza una consulta a la base de datos para extraer todos los nombres y determina cuántos nombres en la base de datos empiezan por M.

Ejemplo de resultados a obtener: En la base de datos los nombres que empiezan por M son: 2

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>

<?php 

function buscarLetraIniciaNombre($fila){

$cadena "M";
$contador 0;

if(strncasecmp($fila['nombre'], $cadena1) == 0){
$contador 1;
}

return $contador;

}

$link mysqli_connect("localhost""root");
mysqli_select_db($link"mibasededatos");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM agenda");
$coincidencia 0;
while($fila mysqli_fetch_array($result)){
buscarLetraIniciaNombre($fila);
$coincidencia $coincidencia buscarLetraIniciaNombre($fila);
}


echo "En la base de datos los nombre que empiezan por M son: ".$coincidencia;
mysqli_free_result($result);
mysqli_close($link);

?>


</body>
</html>

Citar
EJERCICIO 2

Utilizando la tabla <<ciudades>> que hemos utilizado para ejercicios de entregas anteriores del curso,

 Crea un archivo php donde se realice una consulta a la base de datos para extraer todos los datos de la tabla y a continuación calcula la suma de habitantes de todos los países y cuántas de estas ciudades tienen metro. Muestra el resultado por pantalla.

Ejemplo de resultados a obtener:

La suma de habitantes de México D.F., Barcelona, Buenos Aires, Medellín, Lima, Caracas, Santiago, Antigua, Quito y La Habana es: 5663886 habitantes

De estas ciudades tienen metro: 5 ciudades.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>

<?php 

$link mysqli_connect("localhost""root");
mysqli_select_db($link"prueba");
$tildes $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM ciudades");
$habitantes 0;
$metro 0;
$msg "La suma de habitanes de: ";
$pasadasDeWhile 1;
while($fila mysqli_fetch_array($result)){

disponibilidadMetro($fila);

if($pasadasDeWhile == 10){
$msg $msg.$fila['ciudad'];
}else{
$msg $msg.$fila['ciudad'].", ";
}

$habitantes $habitantes $fila['habitantes'];
$metro $metro disponibilidadMetro($fila);
$pasadasDeWhile++;

}

function disponibilidadMetro($fila){

$contador 0;

if($fila['tieneMetro'] == 1){
$contador 1;
}

return $contador;

}

echo $msg." es: ".$habitantes;
echo "<br><br>De estas ciudades tienen metro: ".$metro." ciudades.";
mysqli_free_result($result);
mysqli_close($link);

?>


</body>
</html>

Mi pregunta es: en la parte del código:

Código: [Seleccionar]
while($fila = mysqli_fetch_array($result)){

disponibilidadMetro($fila);

if($pasadasDeWhile == 10){
$msg = $msg.$fila['ciudad'];
}else{
$msg = $msg.$fila['ciudad'].", ";
}

$habitantes = $habitantes + $fila['habitantes'];
$metro = $metro + disponibilidadMetro($fila);
$pasadasDeWhile++;

}

Puede especificar el último registro de la tabla, porque sé que hay 10 registros. Pero como puede hacer esta condicional:

Código: [Seleccionar]
if($pasadasDeWhile == 10)
sin haber mirado la table en phpMyAdmin? No puedo hacer algo como:

Código: [Seleccionar]
if($pasadasDeWhile == count($result))
Evidentemente no me funciona, porque lo probé y el método "count($result)" me devuelve un valor de "12". Que por cierto, no sé de donde sale, porque los registros en la tabla "ciudades" son 10.

Me tiene intrigado. He mirado por internet y veo que hay unas instrucciones como:

Citar
Imaginemos que nuestra tabla "libros" contiene muchos registros. Para averiguar la cantidad sin necesidad de contarlos manualmente usamos la función "count()":

 select count(*) from libros;

pero no consigo aplicarlo.

Gracias.

85
Buenas noches.

Expongo una posible solución del ejercicio CU00841B del curso PHP desde cero.

Citar
EJERCICIO

Utilizando la tabla <<ciudades>> que hemos creado para el ejercicio de la entrega anterior del curso, cuyo contenido era:

 Crea un archivo php donde se realice una consulta a la base de datos para extraer todos los datos de la tabla y a continuación muestra por pantalla los valores de país y ciudad de cada fila.

Ejemplo de resultados a obtener:

Los resultados de la consulta a la base de datos son los siguientes:

País: México --- Ciudad: México D.F.

País: España --- Ciudad: Barcelona

País: Argentina --- Ciudad: Buenos Aires





País: Cuba --- Ciudad: La Habana

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>

<?php 

echo "Los resultados de la consulta a la base de datos son los siguientes: <br><br>";

$link mysqli_connect("localhost""root");
mysqli_select_db($link"prueba");
$tilde $link -> query("SET NAMES 'utf8'");
$result mysqli_query($link"SELECT * FROM ciudades");
mysqli_data_seek($result0);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result1);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result2);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result3);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result4);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result5);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result6);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result7);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result8);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_data_seek($result9);
$extraido mysqli_fetch_array($result);
echo "País: ".$extraido['pais']." --- Ciudad: ".$extraido['ciudad']."<br>";
mysqli_free_result($result);
mysqli_close($link);

 ?>


</body>
</html>

Resulta un poco incomodo llamar cada fila manualmente y no poder utilizar un bucle.

Gracias

86
Buenas tardes. Propongo una posible solución de los ejercicios de la entrega CU00838B del curso PHP desde cero.

Citar
EJERCICIO

Crea un fichero que lleve por nombre miArchivoDePrueba.txt e introduce en él el siguiente texto:

Una base de datos es un sistema informático a modo de almacén.

En este almacén se guardan grandes volúmenes de información.

Por ejemplo, imaginemos que somos una compañía telefónica y deseamos tener almacenados los datos personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones de personas.

A continuación crea un archivo denominado ejemplo2.php donde usando la funciónfile_get_contents recuperes en una variable el texto que se encuentra en ese fichero y lo muestres en el navegador.

Código: [Seleccionar]
<?php 

$texto fopen("miArchivoDePrueba.txt""w");
fwrite($texto" Una base de datos es un sistema informático a modo de almacén.

 

En este almacén se guardan grandes volúmenes de información.

 

Por ejemplo, imaginemos que somos una compañía telefónica y deseamos tener almacenados los datos personales y los números de teléfono de todos nuestros clientes, que posiblemente sean millones de personas."
);
fclose($texto);

$texto file_get_contents("miArchivoDePrueba.txt");
$texto nl2br($texto);
echo $texto;

?>

Quería aclarar, que antes de mostrar el contenido del archivo "miArchivoDePrueba.txt" mediante la función "file_get_contents()" lo he creado automáticamente en el mismo código. Así evito la molestia de subir el archivo "miArchivoDePrueba.txt" y luego el que lo corrija que lo tenga que subir en el servidor manualmente para su mostración posterior con la función "file_get_contents()".

Citar
EJERCICIO 2

Recupera el código fuente de tres páginas web diferentes y usando las funciones para cadenas de php muestra por pantalla cuántas veces aparece la etiqueta <h1> en cada una de ellas. Ejemplo de resultado a obtener: La etiqueta h1 aparece 34 veces en aprenderaprogramar.com. La etiqueta h1 aparece 45 veces en elmercurio.cl. La etiqueta h1 aparece 88 veces en clarin.com

Código: [Seleccionar]
<?php 

$texto file_get_contents("http://aprenderaprogramar.com");

function buscarCadenaDeTexto($texto,$html){
$cadena1 $texto;
$cadena2 "<h2";
echo "La etiqueta h2 aparece: ".substr_count($cadena1$cadena2)." veces en ".$html."<br><br>";
}

buscarCadenaDeTexto($texto,"aprenderaprogramar.com");

$texto file_get_contents("http://elmercurio.cl");

buscarCadenaDeTexto($texto"elcomercio");

$texto file_get_contents("http://clarin.com");

buscarCadenaDeTexto($texto"clarin.com");

?>

He buscado la etiqueta "<h2", porque  la página de aprenderaprogramar.com no dispone de ninguna etiqueta "<h1". Supongo que es por cuestiones de facilitar la búsqueda por motores como "google", "bing", etc.

También quería comentar una cuestión que me tuvo toda la tarde ocupado y no la pude resolver. Cuando hago ejecución del código:

Código: [Seleccionar]
$file = file_get_contents("https://www.aprenderaprogramar.com");
echo $file;


no hay manera de que los navegadores me lo visualicen como un archivo de texto y que se vea de esta forma:



Siempre lo lee como si fuera una página normal hecha en archivo con extensión .html, aunque haya guardado el archivo con extensión .txt.

Es decir, aunque ejecute el código así:

Código: [Seleccionar]
$file = file_get_contents("https://www.aprenderaprogramar.com");
$archivo = fopen("texto.txt", "w");
fwrite($archivo, $file);
fclose($archivo);
echo $archivo;

igualmente me lo muestra como una página web normal y no como un archivo de texto.
No sé si es por cuestiones de configuración del navegador o por el simple hecho que el intérpreta del navegador intenga, a toda costa, mostrar el contendido del archivo como una página web al detectar las etiquetas correspondientes (<html>,<head>,<body>, etc.)

Lo he probado en dos navegadores: firefox, chrome, y el resultado siempre ha sido el mismo.

Gracias.

87
Buenas tardes.

Expongo una posible solución del ejercicio CU00387B del curso PHP desde cero.

Citar
EJERCICIO

Crea el siguiente código PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirNumerosMod que reciba dos parámetros: un array de valores enteros y una cadena de texto que puede ser "sobreescribir" ó "ampliar". La función debe proceder a: escribir cada uno de los números que forman el contenido del array en una línea de un archivo datosEjercicio.txt usando el modo de operación que se indique con el otro parámetro. Si el archivo no existe, debe crearlo.

Ejemplo: El array que se pasa es $numeros = array(5, 9, 3, 22); y la invocación que se utiliza es escribirNumerosMod($numeros, "sobreescribir"); En este caso, se debe eliminar el contenido que existiera previamente en el archivo y escribir en él 4 líneas, cada una de las cuales contendrá los números 5, 9, 3 y 22.

Código: [Seleccionar]
<?php 

$numeros = array(59322);
$sobreescribir "w";

function escribirNumerosMod($numeros$sobreescribir){

$file fopen("datosEjercicio01.txt"$sobreescribir);
foreach($numeros as $arreglo){
fwrite($file$arreglo.PHP_EOL);
}
fclose($file);

}

escribirNumerosMod($numeros$sobreescribir);

?>

Citar
b) Una función (tipo procedimiento, no hay valor devuelto) denominada leerContenidoFichero que reciba como parámetro la ruta del fichero y muestre por pantalla el contenido de cada una de las líneas del fichero.

Código: [Seleccionar]
<?php 

$enlace "datosEjercicio01.txt";

function leerContenidoFichero($enlaceDelFichero){

$file fopen($enlaceDelFichero"r");
while(!feof($file)){
$linea fgets($file)."<br>";
echo $linea;
}

}

leerContenidoFichero($enlace);

?>

Citar
c) Crea código php donde a través de la función escribirNumerosMod escribas en el fichero los números 2, 8, 14. Luego, mediante la función leerContenidoFichero muestra el contenido del fichero. Ahora con la función escribirNumerosMod amplía el contenido del fichero y añádele los números 33, 11 y 16. Muestra nuevamente el contenido del fichero por pantalla. Finalmente, escribe el fichero pasándole un array con los número 4, 99, 12 y parámetro <<sobreescribir>> para eliminar los datos que existieran previamente. Muestra el contenido del fichero por pantalla y un mensaje de despedida.

Código: [Seleccionar]
<?php 

$numeros = array(2814);
$sobreescribir "w";
$anyadir "a";

function escribirNumerosMod($numeros$anyadir){

$file fopen("datosEjercicio02.txt"$anyadir);
foreach($numeros as $arreglo){
fwrite($file$arreglo.PHP_EOL);
}
fclose($file);

}

escribirNumerosMod($numeros$anyadir);

$enlace "datosEjercicio02.txt";

function leerContenidoFichero($enlaceDelFichero){

$contador 1;
$file fopen($enlaceDelFichero"r");
while(!feof($file)){
$linea fgets($file);
echo "La línea ".$contador." contiene: ".$linea."<br>";
$contador += 1;
}

}

leerContenidoFichero($enlace);

echo "<br><br><br>";

$numeros = array(331116);

escribirNumerosMod($numeros$anyadir);

leerContenidoFichero($enlace);

echo "<br><br><br>";

$numeros = array(4912);

escribirNumerosMod($numeros$sobreescribir);

leerContenidoFichero($enlace);

echo "<br><br><br>Gracias por utilizar nuestra aplicación!!!";

?>

Gracias.

88
Buenas tardes. Aquí dejo una posible solución del ejercicio CU00836B del curso PHP desde cero.

Citar
EJERCICIO

Crea las siguientes funciones en PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.

Código: [Seleccionar]
<?php 

function escribirTresNumeros($a$b$c){

$fp fopen("datosEjercicio.txt""w");
fputs($fp$a."\n".$b."\n".$c);
fclose($fp);

}

escribirTresNumeros(246);

?>

Citar
b) Una función denominada obtenerSuma (tipo función, devolverá un valor numérico) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva la suma de todos esos números.

Código: [Seleccionar]
<?php 

function 
obtenerSuma(){

$fp fopen("datosEjercicio.txt""r");
$contador 0;
$resultado 0
$valor = array();
while(!feof($fp)){
$linea fgets($fp);
$valor[$contador] = $linea;
echo "La línea ".($contador+1)." vale = ".$valor[$contador]."<br>";
$resultado $resultado $valor[$contador];
$contador += 1;
}
fclose($fp);
return $resultado;

}

echo "La suma de las tres líneas es: ".obtenerSuma();

?>

Citar
c) Una función denominada obtenerArrNum (tipo función, devolverá un array de valores numéricos) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva un array cuyo índice 0 contendrá el número existente en la primera línea, cuyo índice 1 contendrá el número existente en la segunda línea y así sucesivamente.

Código: [Seleccionar]
<?php 

function 
obtenerArrNum($archivo){

$fp fopen($archivo"r");
$valor;
$contador 0;

while(!feof($fp)){
$linea fgets($fp);
$valor[$contador] = $linea;
$contador += 1;
}

fclose($fp);

return $valor;

}

foreach (obtenerArrNum("datosEjercicio.txt") as $indice => $valor) {
echo "El índice ".$indice." contiene: ".$valor."<br>";
}

?>

Citar
d) Crea código php donde a través de la función escribirTresNumeros escribas en el fichero los números 2, 8, 14. Luego, mediante la función obtenerSuma muestra por pantalla el resultado de sumar los números existentes en el archivo. Finalmente, mediante la función obtenerArrNum obtén el array, recórrelo y muestra cada uno de los elementos del array.

Código: [Seleccionar]
<?php 

function 
escribirTresNumeros($a$b$c){

$fp fopen("datosEjercicio.txt""w");
fputs($fp$a."\n".$b."\n".$c);
fclose($fp);

}

escribirTresNumeros(246);


function obtenerSuma(){

$fp fopen("datosEjercicio.txt""r");
$contador 0;
$resultado 0
$valor = array();
while(!feof($fp)){
$linea fgets($fp);
$valor[$contador] = $linea;
echo "La línea ".($contador+1)." vale = ".$valor[$contador]."<br>";
$resultado $resultado $valor[$contador];
$contador += 1;
}
fclose($fp);
return $resultado;

}

echo "La suma de las tres líneas es: ".obtenerSuma()."<br>";

echo "<br><br><br>";

function obtenerArrNum($archivo){

$fp fopen($archivo"r");
$valor;
$contador 0;

while(!feof($fp)){
$linea fgets($fp);
$valor[$contador] = $linea;
$contador += 1;
}

fclose($fp);

return $valor;

}

foreach (obtenerArrNum("datosEjercicio.txt") as $indice => $valor) {
echo "El índice ".$indice." contiene: ".$valor."<br>";
}

?>

Gracias.

89
Buenas tardes, una solución del ejercicio CU00835B del curso PHP desde cero.

Citar
EJERCICIO PROPUESTO

Diseñar un desarrollo web simple con PHP que dé respuesta a la necesidad que se plantea a continuación. Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se desea crear una aplicación web que le indique cuánto tiempo transcurrirá hasta el llenado del depósito. El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y lo facilita el propio operario, aportando el dato en litros por minuto.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<form action="CU00834B(01).php" name="formularioLlenarDeposito" method="post">
<label><span>Introduzca el caudal disponible en litros/minuto: </span><input type="text" name="caudal" id="caudal"></label><br><br>
<label><span>Introduzca el diámetro del depósito, en metros: </span><input type="text" name="diametro" id="diametro"></label><br><br>
<label><span>Introduzca la altura del depósito, en metros: </span><input type="text" name="altura" id="altura"></label><br><br>
<label><input type="submit" value="Calcular"></label>
</form>
</body>
</html>

Código CU00835B(01).php

Código: [Seleccionar]
<?php 

$caudal $_REQUEST['caudal'];
$diametro $_REQUEST['diametro'];
$altura $_REQUEST['altura'];
$Pi 3.1416;
$radio $diametro/2;
$volumen $Pi * ($radio $radio) * $altura;
$vLitro $volumen 1000;
$tMinutos $vLitro $caudal;

echo "<br>Datos recibidos:";
echo "<br>Caudal disponible: ".$caudal." litros/minuto";
echo "<br>Diametro del depósito: ".$diametro." metros";
echo "<br>Altura del depósito: ".$altura." metros";
echo "<br>El tiempo que trascurrirá hasta el llenado del depósito es de: ".$tMinutos." minutos aprox.";

?>

Citar
Para que tengas una referencia, si el caudal disponible es de 125 litros por minuto y losvalores de diámetro y altura del cilindro son 2.15 y 1.75, el resultado que debes obtener es que el depósito tarda en llenarse será de aproximadamente 50 minutos.

Gracias.

90
Hola a toda la comunidad de aprenderaprogramar.com. Dejo una posible solución del ejercicio CU00834B del curso PHP desde cero.

Citar
JERCICIO PROPUESTO

Diseñar un desarrollo web simple con PHP que dé respuesta a la necesidad que se plantea a continuación.

Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se desea crear una aplicación web que le indique cuánto tiempo transcurrirá hasta el llenado del depósito. El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y lo facilita el propio operario, aportando el dato en litros por minuto.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<form action="CU00834B(01).php" name="formularioLlenarDeposito" method="post">
<label><span>Introduzca el caudal disponible en litros/minuto: </span><input type="text" name="caudal" id="caudal"></label><br><br>
<label><span>Introduzca el diámetro del depósito, en metros: </span><input type="text" name="diametro" id="diametro"></label><br><br>
<label><span>Introduzca la altura del depósito, en metros: </span><input type="text" name="altura" id="altura"></label><br><br>
<label><input type="submit" value="Calcular"></label>
</form>
</body>
</html>

Código CU00834B(01).php:

Código: [Seleccionar]
<?php 

$caudal $_POST['caudal'];
$diametro $_POST['diametro'];
$altura $_POST['altura'];
$Pi 3.1416;
$radio $diametro/2;
$volumen $Pi * ($radio $radio) * $altura;
$vLitro $volumen 1000;
$tMinutos $vLitro $caudal;

echo "<br>Datos recibidos:";
echo "<br>Caudal disponible: ".$caudal." litros/minuto";
echo "<br>Diametro del depósito: ".$diametro." metros";
echo "<br>Altura del depósito: ".$altura." metros";
echo "<br>El tiempo que trascurrirá hasta el llenado del depósito es de: ".$tMinutos." minutos aprox.";

?>

Citar
Para que tengas una referencia, si el caudal disponible es de 125 litros por minuto y losvalores de diámetro y altura del cilindro son 2.15 y 1.75, el resultado que debes obtener es que el depósito tarda en llenarse será de aproximadamente 50 minutos.

Gracias.

91
Buenas tardes. Os dejo una posible solución del ejerccicio CU00833B del curso PHP desde cero:

Citar
EJERCICIO PROPUESTO

Diseñar un desarrollo web simple con PHP que dé respuesta a la necesidad que se plantea a continuación.

Un operario de una fábrica recibe cada cierto tiempo un depósito cilíndrico de dimensiones variables, que debe llenar de aceite a través de una toma con cierto caudal disponible. Se desea crear una aplicación web que le indique cuánto tiempo transcurrirá hasta el llenado del depósito. El caudal disponible se considera estable para los tiempos que tardan los llenados de depósitos y lo facilita el propio operario, aportando el dato en litros por minuto.

Código HTML:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<form action="CU00833B(01).php" name="formularioLlenarDeposito" method="get">
<label><span>Introduzca el caudal disponible en litros/minuto: </span><input type="text" name="caudal" id="caudal"></label><br><br>
<label><span>Introduzca el diámetro del depósito, en metros: </span><input type="text" name="diametro" id="diametro"></label><br><br>
<label><span>Introduzca la altura del depósito, en metros: </span><input type="text" name="altura" id="altura"></label><br><br>
<label><input type="submit" value="Calcular"></label>
</form>
</body>
</html>

Código CU00833B(01).php

Código: [Seleccionar]
<?php 

$caudal $_GET['caudal'];
$diametro $_GET['diametro'];
$altura $_GET['altura'];
$Pi 3.1416;
$radio $diametro/2;
$volumen $Pi * ($radio $radio) * $altura;
$vLitro $volumen 1000;
$tMinutos $vLitro $caudal;

echo "<br>Datos recibidos:";
echo "<br>Caudal disponible: ".$caudal." litros/minuto";
echo "<br>Diametro del depósito: ".$diametro." metros";
echo "<br>Altura del depósito: ".$altura." metros";
echo "<br>El tiempo que trascurrirá hasta el llenado del depósito es de: ".$tMinutos." minutos aprox.";

?>

Citar
Para que tengas una referencia, si el caudal disponible es de 125 litros por minuto y losvalores de diámetro y altura del cilindro son 2.15 y 1.75, el resultado que debes obtener es que el depósito tarda en llenarse será de aproximadamente 50 minutos.

Gracias

92
Buenas noches. Aquí dejo una posible solución del ejercicio CU00832B del curso PHP desde cero.

Citar
EJERCICIO

Crea un archivo HTML que contenga un formulario que contenga un checkbox (¿Desea recibir factura?), dos input radio (Varón/Mujer), tres input tipo texto (Nombre, Dirección, Email) y un combobox para forma de envío (normal, por avión o urgente), junto con un botón de envío. Establece como url de envío la dirección recibe.php y método de envío get y comprueba que se recuperan los datos enviados correctamente a través de la url.

Código: [Seleccionar]
<?php 

echo '<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar</title>
<style type="text/css">
div{
text-align: center;
}
</style>
</head>
<body>
<div>
<form action="recibe.php" method="get">
<label><span>¿Desea recibir factura?</span><input type="checkbox" name="factura"></label><br><br>
<label><span>Varón</span><input type="radio" name="sexo" value="varon"></label>
<label><span>Mujer</span><input type="radio" name="sexo" value="mujer"></label><br><br>
<label><span>Nombre: <input type="text" name="nombre" id="nombre"></span></label><br><br>
<label><span>Dirección: <input type="text" name="direccion" id="direccion"></span></label><br><br>
<label><span>Email: <input type="text" name="correo" id="correo"></span></label><br><br>
<label>
<select>
<option value="">Forma de envío</option>
<option value="normal">Normal</option>
<option value="porAvion">Por avión</option>
<option value="urgente">Urgente</option>
</select>
</label><br><br>
<label><input type="submit" value="Enviar"></label>
</form>
</div>
</body>
</html>'
;

?>

En el servidor local me funciona, se envían los datos en la url (utilizo XAMPP), pero en el servidor remoto no.

Gracias.

93
Buenas tardes. Expongo una posible solución de los ejercicios de la entrega CU00831B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea una función php de nombre mostrarDiasMes que reciba como argumentos un mes (valor numérico de 1 a 12) y un año (valor numérico de 4 dígitos) y muestre por pantalla el texto “extendido” correspondiente a la fecha en idioma español. Por ejemplo mostrarDiasMes(1, 2089) deberá devolver: 1 de enero de 2089, 2 de enero de 2089, 3 de enero de 2089, 4 de enero de 2089… hasta 31 de enero de 2089”.

Código: [Seleccionar]
<meta charset="utf-8" />
<?php 

function mostrarDiasMes($mes$anyo){
$miFecha gmmktime(12,0,0,$mes,15,$anyo);
setlocale(LC_TIME"es_ES.UTF-8");
//date_default_timezone_set("Europe/Madrir");
echo strftime("%d de %B de %Y %H:%M"$miFecha);
}

mostrarDiasMes(6,2018);

?>

Citar
EJERCICIO 2

Repite el ejercicio anterior, pero en esta ocasión mostrando la fecha en formato de hora tal y como se usa en Holanda y en idioma holandés.

Código: [Seleccionar]
<meta charset="utf-8" />
<?php 

function mostrarDiasMes($mes$anyo){
setlocale(LC_TIME"nl_NL.UTF-8");
date_default_timezone_set("Europe/Amsterdam");
$miFecha gmmktime(12,0,0,$mes,15,$anyo);
echo strftime("%d de %B de %Y %H:%M"$miFecha);
}

mostrarDiasMes(6,2018);

?>

Cuál es la diferencia entre la función nativa "date()" y "strftime()" ?

Por lo que he entendido de esta entrega del curso, el método "setlocale()" sóo sirve para cambiar la lengua en la que mostraremos la fecha y la hora, en cambio, el método "setlocale()" ajusta la hora local. Lo tengo bien entendido?

Gracias.

94
Buenas tardes, expongo una posible solución del ejercicio CU00830B del curso PHP desde cero.

Citar
EJERCICIO

Crea un documento HTML que conste de un título h1 con el texto <<Calendario>>. En la página deberá mostrarse el mes y año actuales (en el momento en que hagas el ejercicio) y para cada día del mes, indicar si es lunes, martes, miércoles, jueves, viernes, sábado o domingo.

Ejemplo: suponiendo que hagas el ejercicio en mayo de 2050, debería mostrarse:

Día 1: Domingo, Día 2: Lunes, Día 3: Martes, Día 4: Miércoles, … etc. hasta Día 31: Martes.

Ampliación voluntaria del ejercicio: si tienes conocimiento de maquetación con HTML y CSS te proponemos que cambies el aspecto para que en lugar de mostrarse como texto, el calendario se muestre con aspecto de calendario habitual. Para la maquetación puedes usar una tabla de 7 columnas por 7 filas (total 49 celdas) con ancho de tabla 300 píxeles y tamaño de fuente en la tabla 24 píxeles. La primera columna corresponderá a lunes y la última a domingo como mostramos en el siguiente ejemplo.

Código: [Seleccionar]
<?php 

$time time();
$primerDiaDelMes $time - ((date("j",$time)-1)*24*60*60);
$primerDeLaSemana date("N"$primerDiaDelMes);
$unDiaContiene 24*60*60;
$diasDeLaSemana = ["Lu""Ma""Mi""Ju""Vi""Sa""Do"];
$mesesDelAnyo = ["Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre"];

echo "<br>";
echo "<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Document</title>
<style type='text/css'>
div{
text-align: center;
}
table{
text-align: center;
margin-left: 41%;
}
</style>
</head>
<body>
<div>
<h1>"
.$mesesDelAnyo[(date("n"$time)-1)]." de ".date("Y"$time)."</h1>
<table style='font-size: 1.5em;'>
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Mi</th>
<th>Ju</th>
<th>Vi</th>
<th>Sa</th>
<th>Do</th>
</tr>"
;
for($i 0$i<$primerDeLaSemana-1$i++){
if($i == 0){
echo "<tr><td></td>";
}else{
echo "<td></td>";
}
};

for($j 0$j date("t"$time); $j++){
if(date("N"$primerDiaDelMes+($unDiaContiene*$j)) == 7){
echo "<td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td></tr>";
}else if(date("N"$primerDiaDelMes+($unDiaContiene*$j)) == 1){
echo "<tr><td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td>";
}else{
echo "<td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td>";
}
};
echo "</tr>
</table>
</div>
</body>
</html>"
?>

Gracias.

95
Buenas noches. Os expongo una posible solución del ejercicio CU00829B del curso PHP desde cero:

Citar
EJERCICIO

Crear archivos php que ejecuten la tarea indicada:

a) Dadas las cadenas "aprender" y "aprende", mostrar por pantalla la cadena rellena con * a derecha e izquierda en un número de asteriscos que será siempre 5 a cada lado aunque se cambien las cadenas.

Código: [Seleccionar]
<?php 

$cadena1 "aprender";
$cadena2 "aprende";

function rellenar($cadena){
echo str_pad($cadena, (strlen($cadena)+10) , "*"STR_PAD_BOTH);
}

echo rellenar($cadena1);
echo "<br><br><br>";
echo rellenar($cadena2);

?>

No entiendo por qué así:

Código: [Seleccionar]
<?php 

$cadena1 "aprender";
$cadena2 "aprende";

function rellenar($cadena){
echo str_pad($cadena, (strlen($cadena)+10) , "*"STR_PAD_BOTH);
}

echo rellenar($cadena1)."<br><br><br>".rellenar($cadena2);

?>

no se imprimen por pantalla los saltos de carro.

Citar
b) Dadas las cadenas "aprender" y "aprende", mostrar por pantalla si sus tres primeros caracteres son iguales o no usando una función de comparación de subcadenas.

Código: [Seleccionar]
<?php 

$cadena1 "aprender";
$cadena2 "aprende";

if(strncmp($cadena1$cadena23)==0){
echo "Las primeras 3 lestras de: '".$cadena1."' y '".$cadena2." son iguales";
}else{
echo "Las primeras 3 lestras de: '".$cadena1."' y '".$cadena2." NO son iguales";
}

?>

Citar
c) Dada la cadena "ApRendEr A proGraMar.cOm" transformar la cadena a minúsculas y rellenarla a derecha e izquierda con una longitud de asteriscos igual a la mitad de su longitud si es par ó igual a la mitad de (su longitud más 1) si es impar. Mostrar por pantalla la cadena en minúsculas y con el relleno indicado.

Código: [Seleccionar]
<?php 

$cadena "ApRendEr A proGraMar.cOm";
$cadena strtolower($cadena);

if((strlen($cadena)%2)==0){
echo str_pad($cadenastrlen($cadena)+strlen($cadena)/2"*"STR_PAD_BOTH);
}else{
echo str_pad($cadenastrlen($cadena)+((strlen($cadena)/2)+1), "*"STR_PAD_BOTH);
}

?>

Gracias.


96
Buenas noches. Dejo una posible solución del ejercicio CU00828B del curso PHP desde cero.

Citar
EJERCICIO

Crear archivos php que ejecuten la tarea indicada:

a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadenaMinusculas strtolower($cadena01);
$subcadena01 substr_count($cadenaMinusculas"a");
$subcadena02 substr_count($cadenaMinusculas"e");
$subcadena03 substr_count($cadenaMinusculas"i");
$subcadena04 substr_count($cadenaMinusculas"o");
$subcadena05 substr_count($cadenaMinusculas"u");
echo "En la cadena: '".$cadena01."' se reptines: <br>".$subcadena01." veces la letra 'a'<br>".$subcadena02." veces la letra 'e'<br>".$subcadena03." veces la letra 'i'<br>".$subcadena04." veces la letra 'o'<br>".$subcadena05." veces la letra 'u'";

?>

Citar
b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar qué consonantes son las que aparecen y cuántas veces aparecen usando funciones para cadenas PHP.

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadenaMinusculas strtolower($cadena01);
$reemplazarA str_replace("a"""$cadenaMinusculas);
$reemplazarE str_replace("e"""$reemplazarA);
$reemplazarO str_replace("o"""$reemplazarE);
$reemplazarU str_replace("u"""$reemplazarO);
$reemplazarI str_replace("i"""$reemplazarU);
$reemplazarEspacio str_replace(" """$reemplazarI);
$miArray count_chars($reemplazarEspacio1);
foreach($miArray as $indiceNum => $veces){
echo "La consonante: '".chr($indiceNum)."' se repite: ".$veces." veces<br>";
}
?>

Citar
c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de <<El abecedario…>> se habrá de mostrar <<El *beced*rio…>>

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadena02 str_replace("a""*"$cadena01);
echo "Cadena original: ".$cadena01."<br>Cadena modificada: ".$cadena02;

?>

Citar
d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la subcadena desde la primera aparición de <<completo>> excluyendo completo, es decir, deberá mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias funciones para cadenas PHP.

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadena02 strstr($cadena01"es"false);
echo $cadena02;

?>

Gracias.

97
Buenas tardes.

Aquí dejo una posible solución del ejercicio CU00827B del curso PHP desde cero.

Citar
EJERCICIO

Crear las siguientes funciones en PHP y código para comprobar su funcionamiento:

a) Una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).

b) Una función que reciba cinco números enteros como parámetros y devuelva el resultado de sumar los cinco números (tipo función, hay un valor devuelto). Asigna el resultado de una invocación a la función con los números 2, 5, 1, 8, 10 a una variable de nombre $tmp y muestra por pantalla el valor de la variable.

c) Una función que reciba como parámetros el valor del radio de la base y la altura de un cilindro y devuelva el volumen del cilindro, teniendo en cuenta que el volumen de un cilindro se calcula como Volumen = númeroPi * radio * radio * Altura siendo númeroPi = 3.1416 aproximadamente.

Código: [Seleccionar]
<?php

function 
operaciones00($a$b$c$d$e){
echo $a+$b+$c+$d+$e;
};

operaciones00(12345);

echo "<br><br><br>";

function operaciones01($a$b$c$d$e){
return  $a $b $c $d $e;
};

$tmp operaciones01(251810);
echo $tmp;

echo "<br><br><br>";

function operaciones02($radio$altura){
$pi 3.1416;
return $pi $radio $radio $altura;

}

echo "El volumes = ".operaciones02(25);
?>

Gracias

98
 Buenas tardes. Dejo una posible solución de los ejercicios de la entrega CU00826B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea un array con nombre paisLimitrofe donde los elementos del array serán cadenas de texto con los países limítrofes (con frontera) con el tuyo. Por ejemplo si vivimos en Perú tenemos como países limítrofes  Ecuador, Colombia, Brasil, Bolivia y Chile.

a) Utilizando un bucle for, muestra por pantalla los países limítrofes.

b) Utilizando un bucle for each, muestra por pantalla los países limítrofes.

Código: [Seleccionar]
<?php 
$paisLimitrofe = array("Portugal""Andorra""Francia");

echo "Los países limítrofes son: ";
for($i 0$i count($paisLimitrofe); $i++){
echo $paisLimitrofe[$i].", ";
}

echo "<br><br><br>Los países limítrofes son: ";
foreach($paisLimitrofe as $pais){
echo $pais.", ";
}
?>

Citar
EJERCICIO 2

Escribe y ejecuta el siguiente código y responde a las siguientes preguntas:

Código: [Seleccionar]
$equipo = array(portero=>'Casillas', defensa=>'Hierro', medio=>'Ces', delantero=>'Ronaldo');

 

foreach($equipo as $posicion=>$jugador) {

    echo "El " . $posicion . " es " . $jugador;

    }

Citar
a) ¿$equipo es una variable normal, un array tradicional ó un array asociativo?

Es un array asociativo.

Citar
b) ¿portero es un índice de un array, un contenido de un elemento de un array o un contenido de una variable simple?

Es un índice asociativo de un array.

Citar
c) ¿Al ejecutar el código obtienes un resultado por pantalla u obtienes un error? ¿Qué es lo que hace el código?

El error que se obtiene es el siguiente: " Use of undefined constant portero - assumed 'portero'". Aquí, lo que hace el intérprete es como "portero" no está definido como una variable, ni tampoco como una cadena de texto, lo asume, automáticamente, como una cadena de texto.

Citar
EJERCICIO 3

Supón que quieres representar lo siguiente: hay 2 equipos españoles, en el primero el portero es Frank, el defensa Pepe, el medio Luis y el delantero Raul. En el segundo, el portero es Tiger, el defensa Mourin, el medio Katz y el delantero Alberto. Hay 1 equipo mexicano, donde el portero es Suarez, el defensa Koltz, el medio Fernandez y el delantero Ramirez. Hay 2 equipos argentinos. En el primero el portero es Higuita, el defensa Mel, el medio Rubens y el delantero Messi. En el segundo el portero es Kostenmeiner, el defensa Lenkins, el medio Marash y el delantero Juanes.

a) Representa los datos usando un array de tres dimensiones con índices numéricos donde el primer índice indica el país, el segundo el equipo y el tercero la posición del jugador. Presenta la información del país, equipo, posiciones y jugadores de cada equipo usando un bucle for.

Código: [Seleccionar]
<?php 
$equipo[0][0][0] = "Fran"
$equipo[0][0][1] = "Pepe";
$equipo[0][0][2] = "Luis";
$equipo[0][0][3] = "Raul";
$equipo[0][1][0] = "Tiger";
$equipo[0][1][1] = "Mourin";
$equipo[0][1][2] = "Katz";
$equipo[0][1][3] = "Alberto";

$equipo[1][0][0] = "Suarez"
$equipo[1][0][1] = "Koltz";
$equipo[1][0][2] = "Fernadez";
$equipo[1][0][3] = "Ramirez";

$equipo[2][0][0] = "Higuita"
$equipo[2][0][1] = "Mel";
$equipo[2][0][2] = "Rubens";
$equipo[2][0][3] = "Messi";
$equipo[2][1][0] = "Kostenmeiner";
$equipo[2][1][1] = "Lenkins";
$equipo[2][1][2] = "Marash";
$equipo[2][1][3] = "Juanes";

for($i 0$i count($equipo); $i++){
echo "<br>En el país: ".($i+1).", ";
for($j 0$j count($equipo[$i]); $j++){
echo "en el equipo: ".($j+1).", <br>";
for($k 0$k count($equipo[$i][$j]); $k++){
echo "en la posición: ".($k+1)." juega: ".$equipo[$i][$j][$k]."<br>";
}
}
}

?>

Citar
b) Representa los datos usando un array de tres dimensiones con índices numéricos donde el primer índice indica el país, el segundo el equipo y el tercero la posición del jugador. Presenta la información del país, equipo, posiciones y jugadores de cada equipo usando un bucle for each.

Código: [Seleccionar]
<?php 
$equipo[0][0][0] = "Fran"
$equipo[0][0][1] = "Pepe";
$equipo[0][0][2] = "Luis";
$equipo[0][0][3] = "Raul";
$equipo[0][1][0] = "Tiger";
$equipo[0][1][1] = "Mourin";
$equipo[0][1][2] = "Katz";
$equipo[0][1][3] = "Alberto";

$equipo[1][0][0] = "Suarez"
$equipo[1][0][1] = "Koltz";
$equipo[1][0][2] = "Fernadez";
$equipo[1][0][3] = "Ramirez";

$equipo[2][0][0] = "Higuita"
$equipo[2][0][1] = "Mel";
$equipo[2][0][2] = "Rubens";
$equipo[2][0][3] = "Messi";
$equipo[2][1][0] = "Kostenmeiner";
$equipo[2][1][1] = "Lenkins";
$equipo[2][1][2] = "Marash";
$equipo[2][1][3] = "Juanes";

$i 0;
$j 0;
$k 0;

foreach($equipo as $pais => $team){
echo "<br>En el país: ".($pais+1).", ";

foreach($equipo[$pais] as $team => $posicion){
echo "en el equipo: ".($team+1).", <br>";

foreach($equipo[$pais][$team] as $posicion => $jugador){
echo "en la posición: ".($posicion+1)." juega: ".$jugador."<br>";
};
};
}

?>

Citar
c) Representa los datos usando arrays arrays asociativos donde el primer índice indica el país, el segundo el equipo y el tercero la posición del jugador (un ejemplo de cómo declarar un elemento sería por ejemplo: $equipos['Mexico']['Equipo1']['defensa']="koltz";). A continuación usando un bucle foreach recorre los elementos del array mostrando la información del país, equipo, posiciones y jugadores de cada equipo.

Código: [Seleccionar]
<?php 
$equipo["España"]["Equipo1"]["portero"] = "Fran";
$equipo["España"]["Equipo1"]["defensa"] = "Pepe";
$equipo["España"]["Equipo1"]["medio"] = "Luis";
$equipo["España"]["Equipo1"]["delantero"] = "Raul";
$equipo["España"]["Equipo2"]["portero"] = "Tiger";
$equipo["España"]["Equipo2"]["defensa"] = "Mourin";
$equipo["España"]["Equipo2"]["medio"] = "Katz";
$equipo["España"]["Equipo2"]["delantero"] = "Alberto";

$equipo["México"]["Equipo1"]["portero"] = "Suarez";
$equipo["México"]["Equipo1"]["defensa"] = "Koltz";
$equipo["México"]["Equipo1"]["medio"] = "Fernandez";
$equipo["México"]["Equipo1"]["delantero"] = "Ramirez";

$equipo["Argentina"]["Equipo1"]["portero"] = "Higuita";
$equipo["Argentina"]["Equipo1"]["defensa"] = "Mel";
$equipo["Argentina"]["Equipo1"]["medio"] = "Rubens";
$equipo["Argentina"]["Equipo1"]["delantero"] = "Messi";
$equipo["Argentina"]["Equipo2"]["portero"] = "Kostenmeiner";
$equipo["Argentina"]["Equipo2"]["defensa"] = "Lenkins";
$equipo["Argentina"]["Equipo2"]["medio"] = "Marash";
$equipo["Argentina"]["Equipo2"]["delantero"] = "Juanes";

foreach($equipo as $pais => $team){
echo "En ".$pais;
foreach($equipo[$pais] as $team => $posicion){
echo " en el: ".$team." equipo juega como: <br>";
foreach($equipo[$pais][$team] as $posicion => $juador){
echo $posicion." - ".$juador.", <br>";
}
echo "<br>";
}
echo "<br><br>";
}

?>

Gracias

99
Buenas tardes, aquí dejo una posible solución del ejercicio CU00825B del curso PHP desde cero.

Citar
EJERCICIO

Crea el código PHP de dos archivos que den respuesta al siguiente planteamiento:

Queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 niveles: Nivel básico, medio y de perfeccionamiento, que se corresponden con las filas de la matriz, y 4 idiomas (Inglés, Francés, Alemán y Ruso), que se corresponden con las columnas de la matriz. Se pide realizar la declaración de la matriz y asignarle los valores indicados en la siguiente imagen cumpliendo con:




Citar
a) Con una sintaxis ejemplo de uso de arrays asociativos donde el primer índice del array (niveles) es un número y el segundo un texto indicativo del idioma. Se debe mostrar por pantalla los alumnos que existen en cada nivel e idioma. Ejemplo: numeroAlumnos[0]['frances'] representará el número de alumnos que existen en el nivel básico, idioma francés.

b) Con una sintaxis ejemplo de uso de arrays asociativos donde tanto el primer índice del array (niveles) como el segundo (idiomas) sea un texto indicativo. Se debe mostrar por pantalla los alumnos que existen en cada nivel e idioma. Ejemplo: numeroAlumnos['basico']['frances'] representará el número de alumnos que existen en el nivel básico, idioma francés.

Código: [Seleccionar]
<?php 
$numeroAlumnos = array(
array(
"inglés" => 1,
"francés" => 14,
"alemán" => 8,
"ruso" => 3,
),
array(
"inglés" => 6,
"francés" => 19,
"alemán" => 7,
"ruso" => 2,
),
array(
"inglés" => 3,
"francés" => 13,
"alemán" => 4,
"ruso" => 1,
),
);
echo "En el nivel básico de inglés hay: ".$numeroAlumnos[0]["inglés"]." alumnos. <br>";
echo "En el nivel básico de francés hay: ".$numeroAlumnos[0]["francés"]." alumnos. <br>";
echo "En el nivel básico de alemán hay: ".$numeroAlumnos[0]["alemán"]." alumnos. <br>";
echo "En el nivel básico de ruso hay: ".$numeroAlumnos[0]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel medio de inglés hay: ".$numeroAlumnos[1]["inglés"]." alumnos. <br>";
echo "En el nivel medio de francés hay: ".$numeroAlumnos[1]["francés"]." alumnos. <br>";
echo "En el nivel medio de alemán hay: ".$numeroAlumnos[1]["alemán"]." alumnos. <br>";
echo "En el nivel medio de ruso hay: ".$numeroAlumnos[1]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel perfeccionamiento de inglés hay: ".$numeroAlumnos[2]["inglés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de francés hay: ".$numeroAlumnos[2]["francés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de alemán hay: ".$numeroAlumnos[2]["alemán"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de ruso hay: ".$numeroAlumnos[2]["ruso"]." alumnos. <br><br><br>";
?>


<?php 
echo 
"<br><br><br>";
$numeroAlumnos["básico"] = array(
"inglés" => 1,
"francés" => 14,
"alemán" => 8,
"ruso" => 3,
);
$numeroAlumnos["medio"] = array(
"inglés" => 6,
"francés" => 19,
"alemán" => 7,
"ruso" => 2,
);
$numeroAlumnos["perfeccionamiento"] = array(
"inglés" => 3,
"francés" => 13,
"alemán" => 4,
"ruso" => 1,
);
echo "En el nivel básico de inglés hay: ".$numeroAlumnos["básico"]["inglés"]." alumnos. <br>";
echo "En el nivel básico de francés hay: ".$numeroAlumnos["básico"]["francés"]." alumnos. <br>";
echo "En el nivel básico de alemán hay: ".$numeroAlumnos["básico"]["alemán"]." alumnos. <br>";
echo "En el nivel básico de ruso hay: ".$numeroAlumnos["básico"]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel medio de inglés hay: ".$numeroAlumnos["medio"]["inglés"]." alumnos. <br>";
echo "En el nivel medio de francés hay: ".$numeroAlumnos["medio"]["francés"]." alumnos. <br>";
echo "En el nivel medio de alemán hay: ".$numeroAlumnos["medio"]["alemán"]." alumnos. <br>";
echo "En el nivel medio de ruso hay: ".$numeroAlumnos["medio"]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel perfeccionamiento de inglés hay: ".$numeroAlumnos["perfeccionamiento"]["inglés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de francés hay: ".$numeroAlumnos["perfeccionamiento"]["francés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de alemán hay: ".$numeroAlumnos["perfeccionamiento"]["alemán"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de ruso hay: ".$numeroAlumnos["perfeccionamiento"]["ruso"]." alumnos. <br><br><br>";
?>

Comentar que es un poco incómodo trabajar con arrays asociativos porque no les podemos meter en un bucle tradiconal, por no llevar orden numérico, sino asociativo. Quizás en un bucle foreach.

Gracias.

100
Buenas noches, aquí dejo una posible solución del ejercicio CU00824B del curso PHP desde cero.

Citar
EJERCICIO

Crea el código PHP de 3 archivos que den respuesta al siguiente planteamiento:

Queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 filas que representarán al Nivel básico, medio y de perfeccionamiento y 4 columnas en las que figurarán los idiomas (0 = Inglés, 1 = Francés, 2 = Alemán y 3 = Ruso). Se pide realizar la declaración de la matriz y asignarle los valores indicados en la siguiente imagen a cada elemento de las siguientes maneras (crea un archivo php por cada una de estas maneras):



Citar
a) Con una sintaxis basada exclusivamente en índices, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Código: [Seleccionar]
<?php
$idiomas = ["inglés""francés""alemán""ruso"];
$alumnos["básico"][0] = 1;
$alumnos["básico"][1] = 14;
$alumnos["básico"][2] = 8;
$alumnos["básico"][3] = 3;
$alumnos["medio"][0] = 6;
$alumnos["medio"][1] = 19;
$alumnos["medio"][2] = 7;
$alumnos["medio"][3] = 2;
$alumnos["perfeccionamiento"][0] = 3;
$alumnos["perfeccionamiento"][1] = 13;
$alumnos["perfeccionamiento"][2] = 4;
$alumnos["perfeccionamiento"][3] = 1;

for($i 0$i 4$i++){
echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["básico"][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";
}
?>

Citar
b) Con una sintaxis basada en el uso anidado de la palabra array, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Código: [Seleccionar]
<?php 
$idiomas = ["inglés""francés""alemán""ruso"];
$alumnos = array(
array(11483),
array(61972),
array(31341),
);

for($i 0$i 4$i++){
echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos[0][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos[1][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos[2][$i]." alumnos <br><br><br>";
};
?>

En este código no se como darles índice a los arrays que están dentro del array. Quería poner algo como:

Código: [Seleccionar]
<?php 
$idiomas = ["inglés""francés""alemán""ruso"];
$alumnos = array(
"básico"(11483),
"medio"(61972),
"perfeccionamiento"(31341),
);

for($i 0$i 4$i++){
echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["básico"][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";
};
?>

pero no funciona. El array no acepta algo como un "nombre".

Citar
c) Con una sintaxis que combine el uso de array y el uso de índices, y mostrar por pantalla los alumnos que existen en cada nivel e idioma.

Código: [Seleccionar]
<?php 
$idiomas = ["inglés""francés""alemán""ruso"];
$alumnos["básico"] = array(11483);
$alumnos["medio"] = array(61972);
$alumnos["perfeccionamiento"] = array(31341);

for($i 0$i 4$i++){
echo "En el curso de ".$idiomas[$i]." en el nivel básico hay: ".$alumnos["básico"][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel medio hay: ".$alumnos["medio"][$i]." alumnos <br>";
echo "En el curso de ".$idiomas[$i]." en el nivel perfeccionamiento hay: ".$alumnos["perfeccionamiento"][$i]." alumnos <br><br><br>";
}
?>

Gracias.

Páginas: 1 2 3 4 [5] 6 7 8 9 10 ... 14

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".