问题与域名的长度无关,只是域名是否存在。
您正在使用DNS服务,该服务将不存在的域解析到服务器,该服务器为您提供“友好的”错误页面,该页面返回200响应码。这意味着它也不是一个问题
get_headers(),它完全依赖于合理的DNS查找。
在不对所使用的每个环境进行硬编码的情况下解决此问题的方法可能类似于以下内容:
// A domain that definitely does not exist. The easiest way to guarantee that// this continues to work is to use an illegal top-level domain (TLD) suffix$testDomain = 'idontexist.tld';// If this resolves to an IP, we know that we are behind a service such as this// We can simply compare the actual domain we test with the result of this$badIP = gethostbyname($testDomain);// Then when you want to get_headers()$url = 'http://www.domainnnnnnnnnnnnnnnnnnnnnnnnnnnn.com/CraxyFile.jpg';$host = parse_url($url, PHP_URL_HOST);if (gethostbyname($host) === $badIP) { // The domain does not exist - probably handle this as if it were a 404} else { // do the actual get_headers() stuff here}
您可能希望以某种方式缓存对的第一次调用的返回值
gethostbyname(),因为您知道自己正在查找不存在的名称,这通常需要几秒钟的时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)