Social Counter in PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Social Counter in PHP

    Hallo,

    Versuche seit einiger Zeit ein Social Share Script zu schreiben. Jedoch sind mir einige Fehler unterlaufen die ich nicht beseitigen kann. Ich würde mich sehr freuen falls jemand mir dabei behilflich sein könnte.

    Hab hin und her umgeändert aber bekomme die Ausgabe nicht. Die Ausgabe sollte aus einzelnen Arrays sein. Also jedes Button einzeln aufrufen.

    Mit error_reporting gibt es keine Fehler.

    PHP-Code:
    function curPageURL() {
     
    $pageURL 'http';
     if (
    $_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
     
    $pageURL .= "://";
     if (
    $_SERVER["SERVER_PORT"] != "80") {
      
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
     } else {
      
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
     }
     return 
    $pageURL;
    }

    $url curPageURL();

    $finfo json_decode(file_get_contents('http://api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&urls='.$url.'&format=json'));
    $tinfo json_decode(file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url='.$url));
    $pinfo json_decode(preg_replace('/^receiveCount\((.*)\)$/'"\\1",file_get_contents('http://api.pinterest.com/v1/urls/count.json?callback=receiveCount&url='.$url)));
    $gplus gplus_shares($url);
     
    function 
    gplus_shares($url){

        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL"https://clients6.google.com/rpc");
        
    curl_setopt($chCURLOPT_POST1);
        
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
        
    curl_setopt($chCURLOPT_POSTFIELDS'[{"method":"pos.plusones.get","id":"p",
    "params":{"nolog":true,"id":"' 
    $url '","source":"widget","userId":"@viewer","groupId":"@self"},
    "jsonrpc":"2.0","key":"p","apiVersion":"v1"}]'
    );
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
    curl_setopt($chCURLOPT_HTTPHEADER, array('Content-type: application/json'));
        
    $result curl_exec ($ch);
        
    curl_close ($ch);
        return 
    json_decode($resulttrue);
    }
     
    $output = array(
        
    'facebook'=> isset($finfo[0]) ? $finfo[0]->total_count NULL,
        
    'twitter'=> isset($tinfo->count) ? $tinfo->count NULL,
        
    'pinterest'=> isset($pinfo->count) ? $pinfo->count NULL,
        
    'googlePlus'=> isset($gplus[0]['result']) ? $gplus[0]['result']['metadata']['globalCounts']['count'] : NULL
     
    );

    function 
    getSocialCount($output){
      return 
    json_encode($output[facebook]) + json_encode($output[twitter]) + json_encode($output[pinterest]) + json_encode($output[googlePlus]);
    }


    function 
    simple_social_sharing$attr_twitter null$attr_items null ) {

      
    // parse variables
      
    $twitter_account $attr_twitter;
      
    $item_toggles $attr_items;


            
    $res file_get_contents($url);
      
    preg_match("~<title>(.*?)</title>~"$res$match);
      
    $page_title_encoded$match[1];

      
    $shorturl file_get_contents('http://bit.ly/shorter/api.php?url=' urlencode($page_url_encoded));

      
    // create share items array
      
    $share_items = array ();

      
    // set each item
      
    $item_facebook = array(
        
    "class" => "facebook",
        
    "href" => "http://www.facebook.com/sharer.php?u={$shorturl}&amp;text={$page_title_encoded}",
        
    "text" => "Facebook"
      
    );
      
    $item_twitter = array(
        
    "class" => "twitter",
        
    "href" => "http://twitter.com/share?text={$page_title_encoded}&amp;url={$shorturl}&amp;via={$twitter_account}",
        
    "text" => "Twitter"
      
    );
      
    $item_google = array(
        
    "class" => "google",
        
    "href" => "http://plus.google.com/share?url={$shorturl}",
        
    "text" => "Google"
      
    );

      
    // test whether to display each item
      
    if($item_toggles) {
        
    // explode into array
        
    $item_toggles_array explode","$item_toggles );
        
    // set each item on or off
        
    $show_facebook $item_toggles_array['0'];
        
    $show_twitter $item_toggles_array['1'];
        
    $show_google $item_toggles_array['2'];
      }
      else {
        
    $display_all_items 1;
      }

      
    // form array of items set to 1
      
    if( $show_facebook==|| $display_all_items ) {
        
    array_push$share_items$item_facebook );
      }
      if( 
    $show_twitter==|| $display_all_items) {
        
    array_push$share_items$item_twitter );
      }
      if( 
    $show_google==|| $display_all_items) {
        
    array_push$share_items$item_google );
      }

      
    // if one or more items
      
    if ( ! empty( $share_items ) ) {
        
    // create output
        
    $share_output "";
        foreach ( 
    $share_items as $share_item ) { 
          
    $share_output .= "<a class=\"ss-share-link social-{$share_item['class']}\" href=\"{$share_item["href"]}\" rel=\"nofollow\" target=\"_blank\">{$share_item['text']}{$count} </a>"
        }
        
    $share_output .= "";
        
    // echo output
        
    echo $share_output;
      }

    }

    echo 
    $simple_social_sharing[0]; 
    Ich würde mich sehr freuen falls jemand Zeit hätte es sich durchzuschauen und gegeben falls meine Fehler mitzuteilen. Danke

  • #2
    Vielleicht solltest du mal erklären, was du genau machen möchtest
    und wie es funktionieren soll ...

    Ich hab den Code nun nur überflogen, aber meinst du vielleicht
    soetwas in dieser art !? Socialbox-Widget

    Kommentar

    Lädt...
    X