Készülődök a Magyarországi Drupal Konferenciára, ahol többek között szeretném majd bemutatni a magyar közösséget. Mivel személyesen sajnos nem ismerek mindenkit ezért elkezdtem nézegetni a tagok honlapjait. A drupal.hu-ról könnyedén ki tudtam nyerni ezeket az adatokat egy egyszerű SQL lekérdezéssel, hisz adminisztrátori jogosultságokkal rendelkezem az oldalon. A drupal.org-ról azonban az adatok kinyerése nem volt ilyen egyszerű feladat. Szerencsére van egy olyan nézete a drupal.org-nak amikor az adott ország felhasználóit lehet kilistázni. Ez azonban nem valami felhasználó barát, hisz a közel 1450 felhasználó adatlapjaihoz egyszerre nem tudok hozzáférni, csak tízesével listázva. Ez mindösszesen száznegyvenöt oldal átböngészését jelentené. Mivel éppen mostanában írtam egy kis AJAX-os keretrendszert ilyen feladatokra, a megoldást sem kellett sokáig keresnem.

  $limit = 1;
  $ossz = 145;
  $id = (int)$_GET['id'] + $limit;
  if($id>$ossz) {$id = $ossz;}
  $html = file_get_contents('http://drupal.org/profile/country/Hungary?page='. $id);
  preg_match_all('!<a>http://.*?</a>.*?!',$html,$matches);
  $message = join('\\n',$matches[0]);print_r($matches,true);

Azt figyeltem meg, hogy a felhasználók weboldalára mutató linkek szövege http:// karaktersorozattal kezdődnek és csak azok. Nincs tehát az oldalon még egy olyan link, ami ezzel a karakter sorozattal kezdődne. Nem kell tehát mást tennem, mint kiszűrnöm ezeket a linkeket a szövegből. A hatodik sorban található mintaillesztő kifejezés pontosan ezt csinálja.

Érdekes, hogy az ezernégyszáz tagnak száznegyven weboldala van. Tehát mindösszesen tíz százaléka állította be ezt az értéket. A linkek nagy része azonban nem személyes oldalakra, blogokra mutat, tehát nem igazán alkalmas az eredetileg kitűzött cél elérésére. A kutatás hozadéka azonban, hogy felfedeztem pár olyan blogot, amelyet érdemes lenne a frissen indult Planet Drupal.hu-ra felvenni. Ha lesz egy kis időm írok nekik.