当前位置: 首页 > 面试题库 >

网址不存在时的file_get_contents

鞠嘉志
2023-03-14
问题内容

我正在使用file_get_contents()访问URL。

file_get_contents('http://somenotrealurl.com/notrealpage');

如果URL不是真实的,它将返回此错误消息。我如何才能使其优雅地出错,以便使我知道该页面不存在并采取相应措施而不显示此错误消息?

file_get_contents('http://somenotrealurl.com/notrealpage') 
[function.file-get-contents]: 
failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found 
in myphppage.php on line 3

例如在zend中,您可以说: if ($request->isSuccessful())

$client = New Zend_Http_Client();
$client->setUri('http://someurl.com/somepage');

$request = $client->request();

if ($request->isSuccessful()) {
 //do stuff with the result
}

问题答案:

您需要检查HTTP响应代码:

function get_http_response_code($url) {
    $headers = get_headers($url);
    return substr($headers[0], 9, 3);
}
if(get_http_response_code('http://somenotrealurl.com/notrealpage') != "200"){
    echo "error";
}else{
    file_get_contents('http://somenotrealurl.com/notrealpage');
}


 类似资料:
  • 下面是pom.xml 日志清楚显示为Tomcat服务器以8080端口号启动 2018-12-19 17:04:35.198信息709136---[nio-8080-exec-1]O.s.web.Servlet.DispatcherServlet:初始化Servlet“Dispatcher Servlet”2018-12-19 17:04:35.198信息709136---[nio-8080-exe

  • 问题内容: 我的CSS文件是: 这是我的HTML代码: 上面的代码在Firefox和Chrome中都可以正常运行。 这在Chrome浏览器中效果很好。但不是在Firefox中。这有什么问题? 问题答案: Firefox 在元素上和/或当源是图像时不支持与Chrome不同的属性。 表示内容图像。如果使用它,它应该有和。 从规格: src属性必须存在,并且必须包含有效的非空URL,该URL可能被引用非

  • 问题内容: 我想知道这两种URL之间的区别:相对URL(用于图片,CSS文件,JS文件等)和绝对URL。 另外,哪个更好用? 问题答案: 通常,使用相对URL被认为是最佳实践,这样您的网站就不会绑定到当前部署位置的基本URL。例如,它无需修改即可在localhost以及您的公共域上工作。

  • 问题内容: 我在Go上的Google App Engine上遇到urlfetch的超时问题。该应用似乎不想花费超过5秒的超时时间(它忽略了更长的超时并在自己的时间后超时)。 我的代码是: 无论我尝试设置什么,该应用程序都会在5秒钟后超时。如何防止它这样做?我的代码有错误吗? 问题答案: 您需要像这样传递持续时间(否则它将默认为5秒超时): 2016年1月2日更新: 有了新的GAE golang软件

  • 问题内容: 默认情况下,django的url解算器似乎执行区分大小写的搜索来解析url,并区分’/ Login’和’login’。我的网址格式如下。 谁能指导我,如何使Django URL不区分大小写? 问题答案: 只需放在每个字符串的开头,即: 告诉每个RE不区分大小写地匹配

  • 问题内容: 我试图在我的JavaScript代码中调用此URL: http://api.addressify.com.au/address/autoComplete?api_key=99acd24a-1c94-49ad-b5ef-6f90d0f126b1&term=1+George+st+t&state=nsw&max_results=5 这是我的JavaScript代码: 我在控制台中遇到跨域U