Foros del Web » Programando para Internet » PHP »

Como extraer contenido de capa DIV especifica

Estas en el tema de Como extraer contenido de capa DIV especifica en el foro de PHP en Foros del Web. Como extraigo el contenido de una capa DIV especifica que forma parte de una pagina HTML?. Que funcion habria para llamar a x div, sea ...
  #1 (permalink)  
Antiguo 27/10/2008, 06:30
Avatar de faco84  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Como extraer contenido de capa DIV especifica

Como extraigo el contenido de una capa DIV especifica que forma parte de una pagina HTML?. Que funcion habria para llamar a x div, sea tanto por ID, NAME o algo por el estilo.

He visto diferentes funciones pero a ninguna se como aplicarle esta opcion. Tal vez haya que crear un poco mas de codigo usando X funcion .
  #2 (permalink)  
Antiguo 27/10/2008, 17:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como extraer contenido de capa DIV especifica

Hola faco84,

Si tu HTML es válido lo puedes obtener usando el DOM parser de PHP, si no es valido, tendrás que obtener el DIV usando expresiones regulares.

Recuerda que el HTML a nivel PHP es solo texto y no se puede tratar como en Javascript.

Saludos.
  #3 (permalink)  
Antiguo 27/10/2008, 19:58
Avatar de faco84  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Como extraer contenido de capa DIV especifica

Asi es GatorV, se que PHP lo lee como texto puro.
Interesante lo que se puede trabajar con DOM, nunca lo habia probado pero se ve tambien que es bastante complejo en cuanto a la cantidad de funciones.

Sabes tu donde por donde podria empezar o.O?. O conoces tu la o las funciones que me sirven?.

Grax!.
  #4 (permalink)  
Antiguo 27/10/2008, 20:21
Avatar de faco84  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Como extraer contenido de capa DIV especifica

Solo por dejar mas claro a algunos dejo un ejemplo de lo que estoy buscando:

...
Código HTML:
<!-- MODULE Home Featured Products -->
<div id="featured-products_block_center" class="block products_block">
	<h4>featured products</h4>

			<div class="block_content">
				<ul style="height:1128px;">
				<li class="ajax_block_product first_item first_item_of_line ">
					<h5><a href="/product.php?id_product=122" title="Stretch denim with permenant creases ">Stretch denim with permenant...</a></h5>
					<p class="product_desc"><a href="/product.php?id_product=122" title="More"> Comfortable, elegant, stylish all describe this model. The&nbsp;pockets feature big black unusual rivets on the fold down...</a></p>
					
					<a href="/product.php?id_product=122" title="" class="product_image"><img src="/img/p/en-default-home.jpg" alt="" height="129" width="129" /></a>
					
					<p>

						<span class="price">AU$ 39.95</span>
						<a class="button" href="/product.php?id_product=122" title="View">View</a>
						<a class="exclusive ajax_add_to_cart_button" rel="ajax_id_product_122" href="/cart.php?qty=1&amp;id_product=122&amp;token=bb81ba439aaedef032ed5c06d22a351f&amp;add" title="Add to cart">Add to cart</a>
					</p>
				</li>
				<li class="ajax_block_product item  ">
					<h5><a href="/product.php?id_product=118" title="Stand out in the crowd">Stand out in the crowd</a></h5>

					<p class="product_desc"><a href="/product.php?id_product=118" title="More"> Brass and silver rivets, silver chain, webbing straps, leather patches, unique pocket design and quality material produce an...</a></p>
					
					<a href="/product.php?id_product=118" title="" class="product_image"><img src="/img/p/en-default-home.jpg" alt="" height="129" width="129" /></a>
					
					<p>
						<span class="price">AU$ 39.95</span>
						<a class="button" href="/product.php?id_product=118" title="View">View</a>
						<a class="exclusive ajax_add_to_cart_button" rel="ajax_id_product_118" href="/cart.php?qty=1&amp;id_product=118&amp;token=bb81ba439aaedef032ed5c06d22a351f&amp;add" title="Add to cart">Add to cart</a>

					</p>
				</li>
				</ul>

		</div>
	</div>
</div>
<!-- /MODULE Home Featured Products --> 
...

Esto es parte de todo el home page the un website. Lo que quiero es, como objetivo final, tener un script que siempre me extraiga todo ese div del modulo FEATURED PRODUCTS.
Se que vendra con todas las etiquetas y es lo bueno porque la gracia es que eso lo usare despues como un stationery e-mail con un nuevo CSS.
  #5 (permalink)  
Antiguo 27/10/2008, 20:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como extraer contenido de capa DIV especifica

Creo si conoces como trabajar el DOM con Javascript lo puedes hacer con PHP, puedes usar por ejemplo getElementById, o getElementsByTagName.

Saludos.
  #6 (permalink)  
Antiguo 28/10/2008, 11:48
Avatar de faco84  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Como extraer contenido de capa DIV especifica

GatorV, no era tan dificil como pense. Como decias bastaba con manipular el contenido DOM en javascript.
Como mi objetivo era generar un script que extraiga un contenido especial de X website, tuve que agregar una llamada a esta pagina usando la funcion de php: file_get_contents() asi puedo obtener ese contenido en un string y mostrarlo en pantalla.
Al final le agrego un boton para ejectuar la funcion de JS que me arrojara la capa DIV que yo queria.

Les dejo el codigo como ejemplo:
Código HTML:
<html>
<head>
<script type="text/javascript">
function createNewDoc()
{
var string = document.getElementById("my-div-name");
var newDoc = document.open("text/html","replace");
newDoc.write(string.innerHTML);
newDoc.close();
}
</script>
</head>
<body>

<?php
$content=file_get_contents("http://my-website/"); // URL
echo $result = substr($content,0,30000);  // RANGE
?>

<br />
<br />
<div align="center">
	<input type="button" value="Open and write to a new document" onclick="createNewDoc()">
</div>
</body>
</html> 
Gracias te pasaste ;)
Por cierto, espero que sirva de ayuda a otros. Creo que puede resultar bastante util.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:48.