2017-09-13 3 views
1

Ich schreibe gerade ein PHP-Skript, um die GitHub E-Mail-Adresse eines Benutzers über die GitHub API (https://api.github.com/users/{username}/events) zu finden.Phrasieren GitHub JSON API in PHP

Ich habe über eine Möglichkeit nachgedacht, aber ich habe es schwer, es in PHP zu implementieren. Mein Denkprozess besteht darin, den JSON zu ziehen, nach der E-Mail-Zeichenfolge zu suchen (mithilfe einer Schleife und einiger RegEx) und dann das Ergebnis zurückzugeben.

Die bisher meine PHP ist (ich bin in die Sprache noch neu): https://hastebin.com/wuzezotuqi.xml

+0

Sie benötigen die E-Mail-Adresse in der Server-Seite zu speichern oder ihre einzige Aufgabe besteht darin, auf der Client-Seite angezeigt werden? –

+0

@RatulSharker Es muss nur auf der Client-Seite angezeigt werden – Undesirable

+0

@RatulSharker Sorry für die späte Antwort, könnten Sie mir auch die Server-Seite (PHP) vorgeschlagene Lösung zeigen? Ich würde es wirklich schätzen. – Undesirable

Antwort

0

Sie Javascript in dem Client-Seite Browser, um die E-Mail holen können.

//parse the response for the email. 
function reqListener() { 
    var para = document.getElementById('textpad'); 
    var emailIndex = this.responseText.indexOf("email"); 

    var nextColonIndex = this.responseText.indexOf(":", emailIndex); 
    var nextCommanIndex = this.responseText.indexOf(",", emailIndex); 

    var emailAddr = this.responseText.substr(nextColonIndex + 1, nextCommanIndex-nextColonIndex - 1); 
} 


// 
// making the api request 
// 
var oReq = new XMLHttpRequest(); 
oReq.addEventListener("load", reqListener); 
oReq.open("GET", "https://api.github.com/users/ratulSharker/events"); 
oReq.send(); 

es auf Aktion Check-in jsfiddle

Incase beabsichtigen Sie es in Server-Seite zu tun PHP

<?php 

$config['useragent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']); 
curl_setopt($ch, CURLOPT_URL, 'https://api.github.com/users/ratulSharker/events'); 
     $content = curl_exec($ch); 



$emailIndex = strpos($content, "email", 0);  // find from the start 


$nextColonIndex = strpos($content, ":", $emailIndex); 
$nextCommanIndex = strpos($content, "," , $emailIndex); 
$nextQuoteIndex = strpos($content, "\"", $nextColonIndex); 
$nextNextQuoteIndex = strpos($content, "\"", $nextQuoteIndex+1); 



    $emailAddr = substr($content, $nextQuoteIndex, $nextNextQuoteIndex-$nextQuoteIndex+1); 

echo $emailAddr; 

in den Code in Aktion Prüfen PHPFiddle