yourls api在缩短之前正在执行url

时间:2014-05-30 13:28:02

标签: php yourls

我已经安装了YOURLS API,并且除了一个问题外它的工作正常。无论我传递什么URL缩短,它首先执行该URL。其中一个链接是取消订阅链接点击它立即从我们的邮件程序取消订阅该成员。我正在使用带有安全令牌的无密码API调用,我通过yourls-api.php函数调用file_get_contents文件。这是我写的代码片段:

$url = urlencode($url);
$api_url = 'http://mydomain.com/yourls/yourls-api.php?signature=593642y63x&action=shorturl&format=json&url='.$url;
$arr_output = json_decode(file_get_contents($api_url), true);   

有人能告诉我如何在缩短之前阻止YOURLS API执行URL?

1 个答案:

答案 0 :(得分:2)

很抱歉这个周末的延迟有点忙。

今天早上刚想通你为什么要面对上述问题。

在你的代码中:

$url = urlencode($url);
$api_url = 'http://mydomain.com/yourls/yourls-api.php?signature=593642y63x&action=shorturl&format=json&url='.$url;
$arr_output = json_decode(file_get_contents($api_url), true);

您正在传递以下参数: 签名,动作,网址和格式 但是YOURLS api不计算这些参数是否足够需要再传递一个参数,即标题

因此,您需要修改代码以包含“title”参数以及您传递的所有其他参数,如下所示:

$url = urlencode($url);
$api_url = 'http://mydomain.com/yourls/yourls-api.php?title=swati&signature=593642y63x&action=shorturl&format=json&url='.$url;
$arr_output = json_decode(file_get_contents($api_url), true);

现在,问题出现了为什么不传递title参数导致URL被执行? 所以,这是因为如果排除了title参数,那么YOURLS会对提供的URL进行额外的HTTP调用,以从该URL获取标题。

祝你有个美好的一天。