使用CURLOPT_FOLLOWLOCATION设置为true将日志卷曲重定向

我有一个脚本可以抓取第三方网站的内容,如果找不到网址,网站会重定向302 标题位置到自定义未找到的网页,而不是发送未找到的404。 该脚本还缓存curl_exec返回的内容,但我不想缓存错误页面,如果我打开了CURLOPT_FOLLOWLOCATION,有没有办法记录这些重定向? 我该如何解决这种情况? 我知道我可以使用dom解析器找到错误消息,如果发现只是丢弃它,但我想知道是否有其他方法可以实现这一点。</ p>
</ div>

展开原文

原文

I have an script that grabs content from third party sites and if the url is not found the site redirects with a 302 header location to a custom not found webpage instead of sending a 404 not found. The script also caches the content returned by curl_exec but i don't want to cache the error pages, so is there a way to log those redirects if i have turned on CURLOPT_FOLLOWLOCATION? How can i solve this situation? I know i could just find the error message using a dom parser and if found just discard it, but i want to know if there is other ways to accomplish this.

3个回答



我最终禁用了followlocation所以我只需要捕获302代码,如果它存在,我不会缓存页面。 以为在卷曲重定向之前会有一种方法来捕获所有代码。</ p>
</ div>

展开原文

原文

I ended up disabling followlocation so i just have to catch the 302 code and if it's present i don't cache the page. Thought there would be a way of catching all codes before curl redirects.



看看在PHP中测试404的URL的简单方法? </ p>

然后使用它,只是不要缓存页面 如果有404 </ p>
</ div>

展开原文

原文

Have a look at Easy way to test a URL for 404 in PHP?

Then using that, just do not cache the page if there is a 404

doupang3062
doupang3062 也许你不理解,我的错,但第三方网站不会将404而不是302扔到错误页面。
7 年多之前 回复



见这里:</ p>

http://www.php.net/manual/en/function.curl-getinfo.php </ p>

这提供了这样的数据。 此功能内置于此类中:</ p>

http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading </ p>
</ div>

展开原文

dsqbh42082
dsqbh42082 我知道了。 我想你需要关闭FOLLOWLOCATION。 下载每个URL,使用get_info()检查标头是否在3xx范围内,如果是,请记录URL,否则如果标头位于2xx范围内,则表示您有目标页面,否则发生错误。
7 年多之前 回复
dtyqeoc70733
dtyqeoc70733 getinfo只显示重定向位置的数据,因此无法实现我所需要的。 不管怎么说,还是要谢谢你。
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问