Autor Tema: Duda en entrega de PHP CU00838B file_get_contents y substr_count  (Leído 3636 veces)

erniker

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Bien, el enunciado es este:
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
Mi codiog es este:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<?php //Ejemplo aprenderaprogramar.com
$web0 "https://www.aprenderaprogramar.com";
$web1 "http://www.cuanto(insulto).com/";
$web2 "http://www.cuantarazon.com/";
$texto0 file_get_contents($web0);
$texto1 file_get_contents($web1);
$texto2 file_get_contents($web2);
$cadena "<h1>";
echo "La etiqueta h1 aparece ".substr_count($texto0$cadena). " veces en $web0";
echo "<br>";
echo "La etiqueta h1 aparece ".substr_count($texto1$cadena). " veces en $web1";
echo "<br>";
echo "La etiqueta h1 aparece ".substr_count($texto2$cadena). " veces en $web2";
?>

</body>
</html>

Y el resultado que sale es este:
La etiqueta h1 aparece 0 veces en https://www.aprenderaprogramar.com
La etiqueta h1 aparece 0 veces en http://www.cuanto(insulto).com/
La etiqueta h1 aparece 4 veces en http://www.cuantarazon.com/

He probado la funcion file_get_contents con esta web, y no me muestra el código fuente, solo la pagina en texto plano... supongo que hay alguna funcion en el  codigo para protegerlo de este tipo de visualizaciones no?
« Última modificación: 02 de Noviembre 2014, 14:35 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Duda en entrega de PHP CU00838B file_get_contents y substr_count
« Respuesta #1 en: 02 de Noviembre 2014, 14:46 »
Hola probando este código parece que sí funciona:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
</head>
<body>
<?php //Ejemplo aprenderaprogramar.com
$web0 "https://www.aprenderaprogramar.com/";
$web1 "http://www.aprendeaprogramar.es/";
$web2 "http://www.cuantarazon.com/";
$texto0 file_get_contents($web0);
$texto1 file_get_contents($web1);
$texto2 file_get_contents($web2);
$cadena "<h1";
echo "La etiqueta h1 aparece ".substr_count($texto0$cadena). " veces en $web0";
echo "<br>";
echo "La etiqueta h1 aparece ".substr_count($texto1$cadena). " veces en $web1";
echo "<br>";
echo "La etiqueta h1 aparece ".substr_count($texto2$cadena). " veces en $web2";
?>

</body>
</html>

El resultado que me muestra es:

La etiqueta h1 aparece 0 veces en https://www.aprenderaprogramar.com/
La etiqueta h1 aparece 1 veces en http://www.aprendeaprogramar.es/
La etiqueta h1 aparece 5 veces en http://www.cuantarazon.com/

Si pruebas este código y no te muestra resultados puede deberse a alguna restricción que tenga tu servidor.

Sobre que no te muestre el código fuente, ten en cuenta que si estás usando la función echo de php esta función no es para mostrar texto, sino para insertar código html en la página, entonces al hacer echo sobre código html lo que hace es insertarte código html y lo verás como se vería una página web

Nota: he puesto como cadena a detectar <h1 para así detectar tanto <h1> como <h1 style="color: red;"> ... </h1>

Saludos

erniker

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Re:Duda en entrega de PHP CU00838B file_get_contents y substr_count
« Respuesta #2 en: 02 de Noviembre 2014, 15:42 »
Ok, gracias!

 

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".