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

如果发生重定向,如何在file_get_contents之后获取真实URL?

长孙逸仙
2023-03-14
问题内容

我正在file_get_contents()网站上获取内容,而且即使我作为参数传递的URL重定向到另一个URL,它也可以正常工作。

问题是我需要知道新的URL,有没有办法做到这一点?


问题答案:

您可以使用cURL而不是发出请求file_get_contents()

这样的事情应该起作用…

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
if(preg_match('#Location: (.*)#', $a, $r))
 $l = trim($r[1]);

资源



 类似资料:
  • 可以按如下方式创建遵循重定向的客户端: 调用URL上的头请求后,如何检索最终的位置头?换句话说,我们如何将最终URL重定向到?

  • 我有一个servlet过滤器类。在doFilter函数中,我希望在chain.doFilter(请求,响应)调用之后重定向到一个自定义URL。

  • 在我的生产Cassandra集群(10个节点)中,我经常获得。因此,为了在我的本地开发环境(四个节点的Cassandra集群)中重现这个问题,我运行了我的代码,然后停止了两个CassandRadaemon。我有以下例外 线程“main”com.datastax.driver.core.exceptions.unavailableException:在com.datastax.driver.core

  • 问题内容: 我想做的是 找出重定向之后的最后一个/最终URL是什么 。 我不希望使用cURL。 我想坚持使用纯PHP(流包装器)。 现在,我有一个URL(比如说http://domain.test),并且我使用get_headers()从该页面获取特定的标题。get_headers也将返回多个标题(请参见下面的 Edit )。有没有办法使用这些标头来构建最终URL?还是有一个PHP函数可以自动执行

  • 我有一个页面“/order/new”,它包括两个客户及其地址的下拉菜单和一个重定向选择要添加到订单中的产品的按钮,我在一个数组中获得产品,并将该数组传递给“/order/new”。但是当我重定向时,我没有获得选定的客户及其地址。我将按顺序添加的产品保存在全局数组hh中,它从ajax获得数据 我想在添加产品数组后获取客户及其地址 我的ajax代码: “/new/order”得我得ejs:

  • 问题内容: 我正在使用ajax表单jquery插件通过ajax提交表单(在对话框中)。 这工作正常,然后我从服务器返回html响应。响应来自我无法修改的标准后重定向php页面。 有没有一种方法可以使用jquery(在ajax回调内部)获取此重定向的URL(最终的GET位置)? 问题答案: 我没有使用过您使用的插件,但是如果您使用jQuery Ajax命令 ,则会收到XMLHttpRequest对象