Autor
|
Tema: Detectar Links y meter en un array (Leído 6,236 veces)
|
|
|
Auton
Desconectado
Mensajes: 5
|
Hola, muchas gracias por tu pronta respuesta. Esa librería y código están realmente bien. Quizá lo necesite en algún momento pero busco algo que creo que es más sencillo a partir de algo que ya tengo. Con este mismo código <? $html = file_get_contents('http://www.example.com');
$dom = new DOMDocument(); @$dom->loadHTML($html);
// grab all the on the page $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); echo $url.','; } ?> ya consigo extraer todas las urls de un html sin librerías en la variable $url, y me imagino que de la misma manera que tenemos la url me imagino que no debe ser muy dificil extraer lo que hay entre: <a href=" http://ellink">y </a> en otra variable, aunque para mí no es tan sencillo claro. Si no aparece algo recurriré a lo que me dices. Gracias de nuevo
|
|
« Última modificación: 18 Junio 2011, 13:16 pm por Auton »
|
En línea
|
|
|
|
madpitbull_99
|
Mira esta función que sirve para extraer el contenido situado entre dos delimitadores: <?php /** * Devuelve el contenido situado entre dos delimitadores. * * @return string */ function getContentFromDelimiters($string, $start, $end) { $second_pos = stripos($str_two, $end); $str_three = substr($str_two, 0, $second_pos); $unit = trim($str_three); return $unit; } /** * Funcionamiento y Uso */ $handler = fopen ("http://madhacking.com", r ); if ($handler) echo "[Ok] Access to site.<br />"; while (!feof($handler)) { $webData .= fread($handler, 12000); } //var_dump($webData); $webTitle = getContentFromDelimiters($webData, "<title>", "</title>"); echo "<b>The web title is: </b>".$webTitle; ?>
También viene con un ejemplo de uso. Lo importante está en la línea resaltada. Supongo que es lo que quieres, mira a ver si te sirve.
|
|
|
En línea
|
|
|
|
Auton
Desconectado
Mensajes: 5
|
Muchas gracias, ahora estoy intentando utilizar esto pero para que encuentre los textos de los enlaces de la página de forma dinámica dentro del bucle de mi código. Te contaré
|
|
|
En línea
|
|
|
|
Shell Root
|
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
Auton
Desconectado
Mensajes: 5
|
Hola, muchas gracias por tu aportación. Había visto preg_match_all pero no entiendo muy bien que debo hacer con este código. 'argv' ? No se dónde tendría que poner la url del contenido de donde tengo que extraer los links (con su texto de link).
Muchas gracias
|
|
|
En línea
|
|
|
|
Shell Root
|
Lo que pasa es que esto se realiza por medio de la consola y por el paso de argumentos tal como, $ php list-urls.php [URL]
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
Auton
Desconectado
Mensajes: 5
|
Hola! Ya tengo la solución ! Ante todo gracias por vuestras respuestas. Aunque la solución era más sencilla. Partiendo del mismo código que había puesto sólo he tenido que añadir $text = $href->nodeValue; donde la variable $text será el texto del link. <? $html = file_get_contents('http://www.example.com');
$dom = new DOMDocument(); @$dom->loadHTML($html);
// grab all the on the page $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) { $href = $hrefs->item($i); $url = $href->getAttribute('href'); $text = $href->nodeValue; echo "<a href='$url'>$text</a>"; } ?>
De hecho ahora lo que me faltaría es detectar una imagen en caso de que en lugar de texto fuese una el cuerpo del enlace.
|
|
« Última modificación: 24 Junio 2011, 12:12 pm por Auton »
|
En línea
|
|
|
|
WHK
|
Sin librerías: <?php foreach($links as $id => $link){ $lnk = $lnk[0]; $text = $text[0]; $type = 'object'; $type = 'bad link'; else $type = 'text'; 'id' => ($id + 1), 'link' => $lnk, 'text' => $text, 'type' => $type ); } ?>
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Copiar parte de una array a otra array
Programación Visual Basic
|
sircid
|
3
|
5,247
|
19 Diciembre 2007, 11:27 am
por LeandroA
|
|
|
Buscar links y meter en un array!
PHP
|
A2Corp
|
3
|
3,758
|
11 Mayo 2010, 06:03 am
por A2Corp
|
|
|
Meter en un array la salida de una consulta de varios documentos con Foreach.
PHP
|
frauzamb
|
1
|
2,040
|
13 Mayo 2014, 20:02 pm
por DanB
|
|
|
Detectar links
PHP
|
jalbtercero
|
1
|
2,458
|
4 Junio 2016, 03:03 am
por [u]nsigned
|
|
|
como meter datos en un array
Programación C/C++
|
alexmila
|
2
|
2,002
|
18 Mayo 2017, 20:12 pm
por MAFUS
|
|