在Skype按钮上创建透明背景

时间:2012-06-14 14:52:49

标签: php html fopen skype

我正在按照本教程http://www.jek2k.com/wp/2008/02/08/building-a-custom-skype-me-button-with-status-icon/在我的网站上获取透明的Skype按钮,以便人们可以通过点击按钮给我打电话。 Skype有自己的背景是白色的,http://www.skype.com/intl/en-us/tell-a-friend/get-a-skype-button/

我的代码是:

          <?php
function getSkypeStatus($username) {
    /*
    returns:
    0 - unknown
    1 - offline
    2 - online
    3 - away
    4 - not available
    5 - do not disturb
    6 - invisible
    7 - skype me
    */
    $remote_status = fopen ('http://mystatus.skype.com/'.$username.'.num', 'r');
    if (!$remote_status) {
        return '0';
        exit;
    }
    while (!feof ($remote_status)) {
        $value = fgets ($remote_status, 1024);
        return trim($value);
    }
    fclose($remote_status);
}

function getSkypeStatusIcon($username) {
    $status = getSkypeStatus($username);
    // change the path of the icons folder to match your site
    echo '<img src="/skype/'.$status.'.png" alt="call '.$username.'" />';
}

// retrieves the numeric status code
//getSkypeStatus('nicolovolpato');

// displays the status icon, change to match your Skype username
getSkypeStatusIcon('myusernamehere');
?>

当我在我的网站上进行测试时,它就出现了:'调用myusernamehere'。没有图像,我无法点击调用myusernamehere来打开Skype并打电话。

我已将图像0-7插入我的根文件夹中名为skype的文件夹中。

任何人都可以提供帮助

2 个答案:

答案 0 :(得分:0)

1)

问题与可能未正确构建的图像路径有关,或者由于浏览器呈现alt属性,因此指定位置的图像不存在。

在此指定Skype图像路径:

echo '<img src="/skype/'.$status.'.png" alt="call '.$username.'" />';

无法找到图片时的输出为call '.$username.',其中包含alt属性的内容。

  

当我在我的网站上测试时,它就出现了:'打电话给我的用户名。'

您可以使用DOM检查器工具(例如Firebug)来确认src属性中指定的图像路径是否正确构建。

2)

如果您通过http://www.mysite.com/skype/1.png之类的浏览器访问该图片,并且您能够看到它,则该问题与$status无法提供预期的0到7值相关。

答案 1 :(得分:0)

要添加点击通话功能,请使用<a>标记:

<a href="skype:{username}?call">...</a>

因此,此脚本的修改版本如下所示:

<?php
function getSkypeStatus($username) {
    $remote_status = file_get_contents('http://mystatus.skype.com/'. $username .'.num');
    return ($remote_status === false) ? '0' : trim($remote_status);
}

function showSkypeButton($username) {
    $status = getSkypeStatus($username);

    echo '<a href="skype:'. $username .'?call">';
    echo '<img src="/skype/'. $status .'.png" alt="Call '. $username .'">';
    echo '</a>';
}

showSkypeButton('whatever');

图像未显示的问题与此代码无关。 Zuul的回答是给你一些关于这个问题的好提示。