2

我正在将一个用普通 php 编写的旧项目移植到 zend 框架(而且我是 zend 的新手),我在 zend 项目中使用 zend http 客户端(带有 cURL 适配器)来替换旧 php 项目的 cULR 部分。我被困住了,因为我不知道 zend http 客户端的替代品

$landing_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

在 cURL 请求期间进行任何重定向后返回登录页面的 url。我可以用zend成功地做以下事情

$config = array(
            'adapter'   => 'Zend_Http_Client_Adapter_Curl',
            'curloptions' => array(
                    CURLOPT_RETURNTRANSFER    =>    true,
                    CURLOPT_FOLLOWLOCATION    =>    true,
            ),
    );
    $redirecting_page_address ='https://www.domain.tld/someredirectingurl';

    $client = new Zend_Http_Client($redirecting_page_address, $config);

    $response = $client->request();

并获得所需的页面作为输出,$response->getBody()现在我想知道$redirecting_page_address重定向到的登陆页面的 url。提前致谢。

4

3 回答 3

2

正如 Cyril 自己回答的那样,zend 框架 2 (2.2.8 2014-09-17) 中没有用于获取有效 URL 的高级 API。但是,您可以获取原始 curl 句柄并在其上使用原生 PHP 函数:

// $client would be a Zend_Http_Client
$handle = $client->getAdapter()->getHandle();
$effectiveUrl = curl_getinfo($handle, CURLINFO_EFFECTIVE_URL);
于 2015-02-26T10:53:50.667 回答
0

如果重定向是由标头完成的,您可以使用

if ($response->isRedirect()){
     $newUrl = $response->getHeader('Location');
}
于 2013-01-05T07:33:21.120 回答
0

在我对此的研究中,我发现在当前版本的 zend 框架(2.0.6)之前没有办法做到这一点,也许在未来的版本中可以包含这个工具。

于 2013-01-19T04:59:19.970 回答