Bonjour, j'ai un code php qui me permet d'afficher le nombre de partages des plus célébrés réseaux sociaux, mais je souhaiterais que ceux si soit affichés avec un "k" à la place des milliers comme ceci :

  • 900 partages donne 900 partages (ne rien faire pour les nombres de partages strictement inférieurs à 1000)
  • 1270 partages donne 1.2K partages (et non pas 1.3k)
  • 12577 partages donne 12.5k partages
  • 152555 partages donne 152k partages (et non pas 152.2k)


Voici mon script actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function get_shares($url) {    
  $json_string = file_get_contents("http://www.linkedin.com/countserv/count/share?url=$url&format=json");
  $json = json_decode($json_string, true);
  return intval( $json['count'] );
}
function get_tweets($url) {
 
    $json_string = file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=' . $url);
    $json = json_decode($json_string, true);
 
    return intval( $json['count'] );
}
 
function get_likes($url) {
 
    $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $url);
    $json = json_decode($json_string, true);
 
    return intval( $json[$url]['shares'] );
}
 
function get_plusones($url) {
 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc");
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_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($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
    $curl_results = curl_exec ($curl);
    curl_close ($curl);
 
    $json = json_decode($curl_results, true);
 
    return intval( $json[0]['result']['metadata']['globalCounts']['count'] );
}
function total($url){
    return get_tweets($url) + get_shares($url) + get_likes($url) + get_plusones($url); }
Et je place ce code pour afficher le compteur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php echo total(get_permalink( $post->ID )); ?>
J'ai trouvé un morceau de réponse avec ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function kilomega( $val ) {
    if( $val < 1000 ) return $val;
    $val = (int)($val/1000);
    if( $val < 1000 ) return "${val}k";
    $val = (int)($val/1000);
    return "${val}m";
}
Mais je ne sais vraiment pas quoi en faire car à vrai dire je n'y connais vraiment pas grand chose en PHP.

Merci