7

我试图非常简单地获取变量 $output 中的数字并将其转换为带有千位分隔符的数字。它当前输出的数字是 49995,但我希望它显示为 49,995。

遇到一些麻烦。帮助?

function twitter_followers($user = 'mytwitterusername'){
    // Build Twitter api url
    $apiurl = "http://api.twitter.com/1/users/show.json?screen_name={$user}";

    //cache request
    $transient_key = $user . "_twitter_followers";

    // If cached (transient) data are used, output an HTML
    // comment indicating such
    $cached = get_transient( $transient_key );

    if ( false !== $cached ) {
        return $cached;
    }

    // Request the API data, using the constructed URL
    $remote = wp_remote_get( esc_url( $apiurl ) );

    // If the API data request results in an error, return
    // an appropriate comment
    if ( is_wp_error( $remote ) ) {
        return '<p>Twitter unaviable</p>';
    }

    // If the API returns a server error in response, output
    // an error message indicating the server response.
    if ( '200' != $remote['response']['code'] ) {
        return '<p>Twitter responded with an HTTP status code of '. esc_html( $remote['response']['code']) . '</p>';
    }

    // If the API returns a valid response, the data will be
    // json-encoded; so decode it.
    $data = json_decode( $remote['body'] );

    $output = $data->followers_count;
    $followers = number_format($output,2,'.',',');

    set_transient( $transient_key, $output, 600 );

    return $followers;
}
4

2 回答 2

12

我已经测试了以下代码并且它可以工作:

$output = 49995;
$followers = number_format( $output , 0 , '.' , ',' );
echo $followers;

不知道为什么您的代码不起作用。还要确保将第二个参数设置为 0,除非您需要小数点。也许 $output 的值最初是一个字符串,您需要将其转换为整数,然后再将其放入 number_format()?

于 2012-07-12T20:28:48.150 回答
1

您的 number_format 似乎是正确的。试一试

$output = intval($data->followers_count);

在调用它之前,解码值后可能存在问题。

于 2012-07-12T20:27:01.713 回答