Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky
Ver más- 13,065 Miembros
- 9,531 Temas
- 3,449 Seguidores
PHP Simple HTML DOM Parser
http://simplehtmldom.sourceforge.net/
Get Html
<?php
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
Modificando Html
<?php
// Create DOM from string
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');
$html->find('div', 1)->class = 'bar';
$html->find('div[id=hello]', 0)->innertext = 'foo';
echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>
?>
Extraer texto
<?php
// Dump contents (without tags) from HTML
echo file_get_html('http://www.google.com/')->plaintext;
?>
Scraping
<?php
// Create DOM from URL
$html = file_get_html('http://slashdot.org/');
// Find all article blocks
foreach($html->find('div.article') as $article) {
$item['title'] = $article->find('div.title', 0)->plaintext;
$item['intro'] = $article->find('div.intro', 0)->plaintext;
$item['details'] = $article->find('div.details', 0)->plaintext;
$articles[] = $item;
}
print_r($articles);
- 5Calificación
- 3Seguidores
- 320Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela
9 respuestas
<?php
include 'simple_html_dom.php';
$url = 'http://web';
$html = file_get_html($url);
foreach($html->find('city') as $e)
$data = $e->innertext . '<br>';
echo $data;
?>
PHP Fatal error: Call to a member function find() on a non-object
No puedo usar simple_html_dom.php ya que mi server no soporta el file-get-contents y ese archivo lo usa
no hay una forma de hacerlo sin eso, dios em estoy volviendo loco
PHP Fatal error: Call to a member function find() on a non-object
asegurate de estar llamando bien al archivo, fijate la documentacion para cargar un el DOM a travez de un texto, este en el ejemplo del post, lee en la pagina oficial
mria
<?php
include 'simple_html_dom.php';
$url = 'http://www.taringa.net/api/2b9c05a9028751d42d224417869e6ca2/xml/Users-GetUserData/joanmanuelh';
$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER,1);
$dtd = curl_exec($c);
$html = str_get_html($dtd);
print 'nick: '.$html->find('profile nick',0)->innertext.'<br />';
print 'userlevel: '.$html->find('profile userlevel',0)->innertext.'<br />';
print 'city: '.$html->find('profile city',0)->innertext.'<br />';
?>
es cuestion de mañana
te amo chabon, esta buenisimo esto
Muy bueno +1 Justo ayer andaba tocando esta clase y es muy buena
ta lindo, ta lindo P: se agradece.
buenísimo +1
No sé si es lo que estoy buscando. Necesito tomar los datos de cotización de monedas (no de todas) de esta página: http://www.cambioschaco.com.py/php/chaco_cotizaciones_nuevo.php# y replicarlos en una tabla en mi web.
¿cómo haría eso?
con esta clase lo que podes hacer es tomar cualquier parte del contenido de una forma mas amigable, una vez que tengas los datos va a depender de como te ingenies para guardarlos
$cotizaciones = array();
$url = "http://www.cambioschaco.com.py/php/chaco_cotizaciones_nuevo.php";
$html = file_get_html($url);
//Tabla con las cotizaciones
$table = $html->find('table.text',0);
//Recorres las filas de la tabla
$i = 0; // Contador
foreach($table->find('tr') AS $tr){
if($i > 1 && $i <= 25){
$title = @trim(str_replace(' ','',$tr->find('td',1)->plaintext));
$cotizaciones[$title] = array(
'compra' => $tr->find('td',2)->plaintext,
'venta' => $tr->find('td',3)->plaintext
);
}
$i++;
}
echo '<pre>';
print_r($cotizaciones);
echo '</pre>';
respuesta
Array
(
[Dolar Americano] => Array
(
[compra] => 4.480,00
[venta] => 4.540,00
)
[Peso Argentino] => Array
(
[compra] => 870,00
[venta] => 930,00
)
[Real] => Array
(
[compra] => 2.330,00
[venta] => 2.430,00
)
[Euro] => Array
(
[compra] => 5.400,00
[venta] => 5.700,00
)
[Peso Chileno] => Array
(
[compra] => 6,00
[venta] => 9,00
)
[Peso Uruguayo] => Array
(
[compra] => 220,00
[venta] => 330,00
)
[Dolar Canadiense] => Array
(
[compra] => 3.990,00
[venta] => 4.430,00
)
[Libra Esterlina] => Array
(
[compra] => 6.350,00
[venta] => 7.000,00
)
[Franco Suizo] => Array
(
[compra] => 4.020,00
[venta] => 4.720,00
)
[Yen Japones] => Array
(
[compra] => 51,00
[venta] => 59,00
)
[Peso Mexicano] => Array
(
[compra] => 270,00
[venta] => 370,00
)
[Boliviano] => Array
(
[compra] => 550,00
[venta] => 730,00
)
[Corona Noruega] => Array
(
[compra] => 620,00
[venta] => 745,00
)
[Peso Colombiano] => Array
(
[compra] => 1,70
[venta] => 2,70
)
[Dolar Australiano] => Array
(
[compra] => 3.430,00
[venta] => 4.630,00
)
[Corona Danesa] => Array
(
[compra] => 650,00
[venta] => 770,00
)
[Corona Sueca] => Array
(
[compra] => 540,00
[venta] => 645,00
)
[Ran Sudafricano] => Array
(
[compra] => 460,00
[venta] => 560,00
)
[Yuan China] => Array
(
[compra] => 510,00
[venta] => 705,00
)
[US Taiwan] => Array
(
[compra] => 115,00
[venta] => 160,00
)
[US Singapur] => Array
(
[compra] => 2.650,00
[venta] => 3.530,00
)
[Rublo Ruso] => Array
(
[compra] => 100,00
[venta] => 145,00
)
[Shekel Israeli] => Array
(
[compra] => 880,00
[venta] => 1.180,00
)
[Dinar Kuwaiti] => Array
(
[compra] => 12.200,00
[venta] => 16.350,00
)
)