Foros del Web » Programando para Internet » PHP »

¿Cómo puedo crear un array asociativo?

Estas en el tema de ¿Cómo puedo crear un array asociativo? en el foro de PHP en Foros del Web. Hola a todos!!, estoy a mitad de camino con mi spider y en cualquier momento dejo de dormir para terminarlo Tengo una duda sobre como ...
  #1 (permalink)  
Antiguo 29/09/2012, 20:47
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Pregunta ¿Cómo puedo crear un array asociativo?

Hola a todos!!, estoy a mitad de camino con mi spider y en cualquier momento dejo de dormir para terminarlo

Tengo una duda sobre como crear un array asociativo con href de mi código, ahora paso a explicarlo:

Código PHP:
Ver original
  1. [...]
  2. $dom = new DOMDocument();
  3. @$dom->loadHTML($html);
  4.  
  5. $xpath = new DOMXPath($dom);
  6. $hrefs = $xpath->evaluate("/html/body//a");
  7.  
  8. for ($i = 0; $i < $hrefs->length; $i++) {
  9.     $href = $hrefs->item($i);
  10.     $url = $href->getAttribute('href');
  11. [...]

Bueno básicamente lo que hace es parsear el html y buscar todos los links de una sola página, que sería la inicial que paso mediante una variable.

Lo que me dijeron que tengo que hacer es un array asociativo entre los href, pero no entendí muy bien como hacerlo. Porque un href debería ser el de la pág inicial alojada en la variable, mientras que otro debería contener las páginas que va recorriendo el crawler.

Se como hacer un array, pero con este estoy realmente confundido.

Si alguien puede darme una ayuda se lo agradezco mucho. Saludos y suerte!
  #2 (permalink)  
Antiguo 29/09/2012, 20:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Cómo puedo crear un array asociativo?

A ver, sabes que es un array ¿pero no cómo hacer uno asociativo?

Consulta el manual:
http://www.php.net/manual/pl/language.types.array.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/09/2012, 21:16
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: ¿Cómo puedo crear un array asociativo?

Gracias por responder, pero si, se como hacer una array asociativo, el problema es con este array, ya que no se como crearlo con los href.

Necesitaría millones de números para asignarles a cada url jaja. Como puedo lograr evitar esto y concentrar todas las urls que se extraen en una variable que vaya cambiando con cada url que se va extrayendo.

No entiendo realmente lo que tengo que hacer para lograr este array, esa es mi duda.

Saludos!
  #4 (permalink)  
Antiguo 29/09/2012, 21:46
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo puedo crear un array asociativo?

Cita:
Iniciado por xarmagedonx Ver Mensaje
Gracias por responder, pero si, se como hacer una array asociativo, el problema es con este array, ya que no se como crearlo con los href.

Necesitaría millones de números para asignarles a cada url jaja. Como puedo lograr evitar esto y concentrar todas las urls que se extraen en una variable que vaya cambiando con cada url que se va extrayendo.

No entiendo realmente lo que tengo que hacer para lograr este array, esa es mi duda.

Saludos!
No entiendo exactamente lo que quieres hacer. Cuando yo cree mi robot araña para sacar contenido rápidamente, guarde todos las url localizadas en un archivo .php de esta forma.

<?php
$a[] = "ACA URL 1";
$a[] = "ACA URL 2";
$a[] = "ACA URL 3";
$a[] = "ACA URL 4";
$a[] = "ACA URL 5";
?>

Todo de forma automático, luego con un count() y una variable GET incrementa-ble explore cada URL, con un intervalo de 5 segundos.

¿Que es lo que exactamente quieres hacer?
  #5 (permalink)  
Antiguo 01/10/2012, 20:15
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: ¿Cómo puedo crear un array asociativo?

Gracias marcofbb, lo que yo quería decir era, como logro guardar las url en un array o una variable a medida que se van extrayendo.

Por ejemplo: Inició con Google y se extran 8 url y estas se guardan en la variable $href2 y así sucesivamente, para luego hacer un array asociativo con las url de $href2 y la url inicial guardada en $href. Luego con esto hago un bucle y extraigo la información necesaria.

El problema es que no se si esto que digo es correcto, las url no se si podrán guardarse en el $href2 y crear un array con ellas.

Saludos!
  #6 (permalink)  
Antiguo 01/10/2012, 20:53
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo puedo crear un array asociativo?

Cita:
Iniciado por xarmagedonx Ver Mensaje
Gracias marcofbb, lo que yo quería decir era, como logro guardar las url en un array o una variable a medida que se van extrayendo.

Por ejemplo: Inició con Google y se extran 8 url y estas se guardan en la variable $href2 y así sucesivamente, para luego hacer un array asociativo con las url de $href2 y la url inicial guardada en $href. Luego con esto hago un bucle y extraigo la información necesaria.

El problema es que no se si esto que digo es correcto, las url no se si podrán guardarse en el $href2 y crear un array con ellas.

Saludos!
Como te comente anteriormente, vas a tener que guardar las variables en un archivo PHP, poniendo de ejemplo lo que vos dijiste de google

Un código dice mas que mil palabras, te dejo un ejemplo

Código PHP:
Ver original
  1. <?php
  2. $url = "http://www.web.com/";
  3. if($page == 1){
  4. $id = 1;
  5. } else {
  6. $suma = $page-1;
  7. $id = 16*$suma;
  8. $id++;
  9. }
  10. $html = file_get_contents($url);
  11. $a = preg_match_all("/<a href=\"(.*?)\">(.*?)<\/a>/",$html,$a2);
  12. $archivo = fopen("nombres.txt", "a+");
  13. foreach($a2[1] as $key){
  14.     $keyd = ($key);
  15.     $d = "a[{$id}]['nombre'] = '{$keyd}';\n";  
  16.     fwrite($archivo, $d);
  17.     $id++;
  18. }
  19. $dir = $page+1;
  20. ?>
  21. <meta http-equiv="refresh" content="5;URL='bot.php?p=<?=$dir;?>'">


Ese código es parte de mi código, que sacaba información de una web, despues al archivo nombres.txt lo renombras a url.php y buscas masivamente a[ y lo remplazas por $a[ y pones los tag de PHP

Saludos
  #7 (permalink)  
Antiguo 01/10/2012, 21:21
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: ¿Cómo puedo crear un array asociativo?

Muchisimas gracias, ahora sí puedo continuar con la construcción del spider.

Saludos!

Etiquetas: array-asociativo, enlaces, href
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 17:49.