Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Facebookin fanimäärä omalle nettisivulle

Sivun loppuun

Stige [11.12.2009 12:48:30]

#

Pedigreen kotisivuilla näkyy reaaliaikaisesti heidän Facebook fanisivujen fanimäärä. Osaako joku kertoa miten tällaisen saa oikein tehtyä? Pelkkänä tekstinä, ilman flashiä.

http://www.pedigree.fi

Macro [11.12.2009 13:35:11]

#

Ohjelma kirjautuu ensin sivulle (Facebook) jonka jälkeen se suunnistaa sivulle jossa on fanimäärä. Tämän jälkeen se parsii kaiken muun fanimäärän ympäriltä ja tulostaa sen.

Metabolix [11.12.2009 13:50:24]

#

Vastaavan voi kirjoittaa PHP:llä, mutta tämä hidastaa sivunlatauksia aivan turhaan, joten kannattaa ajaa se esimerkiksi enintään kymmenen minuutin välein.

Macro [11.12.2009 13:54:23]

#

Mutta, toisaaltaan sitä ei tarvitse edes automaattisesti päivittää. Tuskin kukaan käyttäjä on niin kauaa samalla sivulla, että se ehtii muuttua. (Empä sitten tiedä, että miten niitä faneja siellä tulee.)

Metabolix [11.12.2009 15:12:08]

#

Tarkoitankin ihan tavallisia sivunlatauksia. Jos palvelin joka kerta lataa Facebookista sivuja, käyttäjän odotusaika kaksinkertaistuu (ellei enemmänkin, jos tarvitaan useampi lataus).

Onkin tietysti aivan toinen kysymys, kiinnostaako ketään täsmällinen lukumäärä. Varmaan riittäisi, että päivittää sen kerran tai pari vuorokaudessa.

jo123 [11.12.2009 16:36:16]

#

Tietenkin voi tehdä kuten tuolla pedigreen sivuilla, että muu sivu latautuu ensin ja sen jälkeen vasta ladataan fanien määrä, jolloin sivun peruslataus ei hidastu...

Macro [11.12.2009 20:06:31]

#

<?php
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)');
$facebook = file_get_contents('http://www.facebook.com/Pedigree.Koirien.ehdoilla');

$facebooks = strpos($facebook, "box_header clearfix");
echo str_replace(".", ",", floatval(str_replace(",", ".", substr($facebook, $facebooks + 33, 30))));
?>

Tuo toimii ainakin kyseisellä ryhmällä (Vähän purkka ratkaisu), mutta muista en tiedä. Saat itse koittaa.

OILgame [11.12.2009 23:21:16]

#

manne kirjoitti:

<?php
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)');
$facebook = file_get_contents('http://www.facebook.com/Pedigree.Koirien.ehdoilla');
$regex = '/<span>6 of (.+?) fans/';
preg_match($regex, $facebook, $fanit);
echo $fanit[1];
?>

Tässä toinen vaihtoehto, toimii ainakin kaikilla sivuilla mitä itse koitin.

En tiiä varmaan, kun en facebookkia käytä, mutta kuulostaisi että tuo ei toimi jos on alle 6 fania?

Marbo [11.12.2009 23:38:19]

#

OILgame kirjoitti:

En tiiä varmaan, kun en facebookkia käytä, mutta kuulostaisi että tuo ei toimi jos on alle 6 fania?

Totta turiset. Koska se ettii siitä kohtaa missä mainitaan 6 / kaikki fanit.

Metabolix [12.12.2009 00:54:06]

#

Ehkä loogisemmin näin:

<?php
$regex = '#<span>(?:.+?\\s+)?([0-9,]+)\\s+fans?</span>#';
if (preg_match($regex, $teksti, $fanit)) {
  $fanit = intval(str_replace(',', '', $fanit[1]));
} else {
  $fanit = 0;
}

En tiedä, onko systeemi toteutettu niin hienosti, että esimerkiksi kysymysmerkki s-kirjaimen perässä olisi tarpeen yhden fanin tapauksessa, mutta onpa sekin tarkistettu. :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta