gpt4 book ai didi

php - Tinyurl API 示例 - 我做对了吗 :D

转载 作者:可可西里 更新时间:2023-10-31 23:26:23 30 4
gpt4 key购买 nike

我们使用超长哈希值在我们的应用程序中注册新用户。问题是这些哈希在某些电子邮件客户端中被破坏 - 导致链接无法使用。

我尝试通过一个简单的调用实现 Tinyurl - API,但我认为它有时会超时......有时邮件无法到达用户。

我更新了代码,但现在 URL 永远不会被转换。 Tinyurl 真的这么慢还是我做错了什么? (我的意思是嘿,5 秒在这个时代已经很多了)

谁能给我推荐一个更可靠的服务?

都是我的错,忘记了 fopen 中的错误。但是我会把这个代码示例留在这里,因为我经常看到这个示例,我认为它不能非常可靠地工作:

return file_get_contents('http://tinyurl.com/api-create.php?url='.$u);

这是 - 我认为完全可用的示例。我想听听有关改进的信息。

static function gettinyurl( $url ) {

$context =
stream_context_create(
array(
'http' => array(
'timeout' => 5 // 5 Seconds should be enough
)
)
);

// get tiny url via api-create.php
$fp = fopen( 'http://tinyurl.com/api-create.php?url='.$url, 'r', $context); // open (read) api-create.php with long url as get parameter

if( $fp ) { // check if open was ok
$tinyurl = fgets( $fp ); // read response

if( $tinyurl && !empty($tinyurl) ) // check if response is ok
$url = $tinyurl; // set response as url

fclose( $fp ); // close connection
}

// return
return $url; // return (tiny) url

最佳答案

您可能想使用 urlencode()对于 url 参数。

还建议检查 fgets() 是否为 false。然后,您可以通过将响应与空字符串进行比较来保存 empty() 函数调用,例如:

$line = fgets($fp);

if ($line !== false && $line !== '') {
// ...
}

通常,如果函数返回不同类型的值,例如integerboolean,建议首先检查所有内容是否为false。这可能是至关重要的,因为 0false 在比较中意味着相同。由于 PHP 缺乏类型安全性,因此强烈建议始终检查类型是否相等。甚至在某些情况下文档会明确推荐这一点,例如在strpos()的情况下.同时,我强制自己使用 =====,'!=' 等也是如此。它需要更多的输入,但绝对值得付出努力因为您消除了可能的陷阱。

我觉得你的其余代码不错。

关于php - Tinyurl API 示例 - 我做对了吗 :D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050242/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com