php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-07-2007, 10:56
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard Google Pagerank

Hi,

(Achtung: langer Post mit mathematischem Problem)

vielleicht gehört diese Sache eher in Projekthilfe, aber ich fang einfach mal an.

Ich schreibe gerade ein Google Tracking Tool in dem man verfolgen kann wo die eigene Seite bei Google gelistet ist und wieviele Leute von Google auf die eigenen Seite kommen. Dazu gehört natürlich auch der Google-PageRank. Ich dachte natürlich, meldest dich als developer an - da gibts sicherlich ne API. Leider nein, an die Google-Developer-API die das ganze kann kommt man nicht mehr ran. Es werden keine Developer-Keys mehr für diese Schnittstelle ausgegeben.

Ich hab mich also auf die Suche gemacht um eine Lösung zu finden. Da ich das ganze "selbst" implementieren muß um meine Meßdaten auch zu speichern, fällt für mich irgend ein Webservice aus.
Ich hab mir dann mal das FireFox-PageRank-Plugin angeschaut. Überraschung Das Plugin tut so als sei es die Google-Toolbar. Ich also noch ein bischen weiter gegoogelt und sogar schon was fertiges in PHP gefunden. Daraufhin hab ich das ganze angepasst und mal einen kleinen Test inszeniert.


PHP-Code:
$url 'www.example.de';
    
//6168324459 ist referenzwert, rausgefunden mit wireshark für die angegeben $url

$ch 61154359128;

//selbst zusammengesetze $data_url
$data_url 'http://toolbarqueries.google.com/search?client='.
           
'navclient-auto&ch='.$ch.'&features=Rank&q='.
           
urlencode('info:'.$url).'&num=100&filter=0';'
$context = array(
            '
http' => array(
                            '
header    =>  "User-Agent: Mozilla/4.0 ".
                            
"(compatible; GoogleToolbar 2.0.114-big;".
                            
" Windows XP 5.1)\r\n"
                           
)
            );
            
$xcontext stream_context_create($context);

echo 
$data_url."\n\n";

echo 
file_get_contents($data_urlfalse$xcontext); 
Es wird bei der Anfrage an toolbar.google.com ein (Sicherheits-)Hash generiert und zwar durch eine (für mich) sehr komplizierte berechnung. Mit WireShark hab ich mir mal einen Beispielwert durch die Google-Toolbar generieren lassen und dann mit der selben Domain das Script gefüttert. Leider kam bei dem gefundenen PHP-Script ein anderer Wert raus, als ihn die Google-Toolbar erzeugt. Das JavaScript des Firefox-Plugins errechnet zB den richtigen Wert.

Ich hab mich also hingesetzt und mich ein bischen mehr in das Plugin gewühlt und, oh wunder, das PHP-Script hat sich wohl vom Firefox-Plugin inspirieren lassen
Die Funktionen die die Berechnung ausführen sind "identisch" - sprich sie machen das selbe unter PHP wie auch unter JavaScript. Nur leider kommt in PHP ein anderes Ergebnis raus und ich verstehe nicht warum. Ich häng das ganze mal mit Beispielwerten an den Post dran...

Aktuell habe ich das ganze funktionierend, allerdings über Java -> Rhino -> JavaScript -> PHP. Rhino ist ein JavascriptInterpreter der in Java geschrieben wurde. D.h. ich nehme momentan mein JavaScript, führe es mit Rhino über Java per PHP aus um an das Ergebnis ds Hashes zu kommen. Ich will halt versuchen das ganze nur in PHP laufen zu lassen, bin aber nicht so das Mathegenie um genau zu verstehen was passiert und vor allem warum es in PHP nicht funktioniert.

Über das moralische Dilemma bin ich mir im klaren - aber es gibt leider keine andere Möglichkeit an den PageRank ran zu kommen. Falls ihr doch eine kennt, sagt mir bitte bescheid...

Wäre schön wenn jemand ein bischen Licht ins Dunkel bringen könnte. Wenn ich mit meiner sehr vagen Vorstellung von höherer Mathematik richtig liege, liegt es wahrscheinlich an den Bitverschiebungen in der mix-Funktion die wohl irgendwie über den 32Bit Integer hinaus kommen. Hier macht JavaScript wohl Unterschiede in der Behandlung...

Ich danke euch schonmal
Angehängte Dateien
Dateityp: txt pagerank_problem.txt (4,8 KB, 149x aufgerufen)

Geändert von prego (05-07-2007 um 11:01 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 05-07-2007, 11:43
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

ich habs - nachdem ich diesen Thread eröffnet habe sind mir ein paar neue Schlagworte eingefallen, nach denen ich suchen konnte.

Ich hab die Lösung. Es liegt wohl am überlauf des 32Bit integers...

http://www.mobileread.com/forums/sho...70&page=18#264


Falls jemand noch Tipps oder so hat, wäre nett
Mit Zitat antworten
  #3 (permalink)  
Alt 05-07-2007, 15:26
Hopka
 PHP Expert
Links : Onlinestatus : Hopka ist offline
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
Hopka ist zur Zeit noch ein unbeschriebenes Blatt
Hopka eine Nachricht über ICQ schicken
Standard

http://php-resource.de/forum/showthr...threadid=75634
__________________
hopka.net!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:27 Uhr.