Buenas tardes. Propongo una posible solución de los ejercicios de la entrega CU00838B del curso PHP desde cero.
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.
<?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()".
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
<?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:
$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í:
$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.