PHP 如果 file_get_contents 失败,则改为执行此操作

新手上路,请多包涵

我有一个使用 Free Bing 翻译器 API 翻译当前文本字符串的功能。我只是想确定是否有任何失败或应用程序 ID 出现问题,或者我根据请求进行检查,我不想显示大错误。

我现在拥有的代码是:

 $translate_feed = file_get_contents('http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=' . BING_APPID . '&text=' . urlencode($text) . '&from=en&to=' . $to_lan . '');
$translate = simplexml_load_string($translate_feed);

return $translate[0];

我想要发生的是,如果任何事情都失败了,所以如果我在 URL 中添加另一个字符以使其无效,那么我希望它只返回 $text 所以至少显示 了一些 内容。

谢谢!

原文由 Drew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 507
2 个回答

您是否尝试过故意使它失败以查看会发生什么?

如果它是一个异常,就抓住它并处理它……

 try{
    //enter code to catch
}catch(Exception $ex){
    //Process the exception
}

如果函数输出错误,只需@隐藏错误并手动处理 \(translate_feed 或 \)translate 的错误输出。

您可以通过简单地将无效 URI 传递给 file_get_contents,然后强制将非 XML 或无效 XML 提供给 simplexml_load_string 来尝试故意使其失败,以查看会发生什么。

原文由 Mathieu Dumoulin 发布,翻译遵循 CC BY-SA 3.0 许可协议

$translate_feed = file_get_contents('http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=' . BING_APPID . '&text=' . urlencode($text) . '&from=en&to=' . $to_lan . '');

if ( $translate_feed === false )
{
   echo "failed";
}

原文由 Wes Crow 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏