📜  如何使用 cURL 查找 URL 将重定向到的位置?

📅  最后修改于: 2022-05-13 02:24:09.445000             🧑  作者: Mango

如何使用 cURL 查找 URL 将重定向到的位置?

一般而言,cURL 代表'Client for URLs',这里的URL 大写表示cURL 处理URL。

PHP方法:
cURL 中使用的基本函数:

  • curl_init()函数:它将启动 curl 一个新会话并返回一个 cURL 句柄。
    句法:
    curl_init();
  • curl_setopt()函数:它为由 ch 参数标识的 cURL 会话设置一个选项。 Option 指定要设置的选项,value 指定给定选项的值。
    句法:
    curl_setopt($ch, option, value);
    

与其他重要命令的参数:



  • curl_setopt($ch, CURLOPT_URL, $url)它将 URL 作为参数传递,这将返回您想要从 Internet 获取的目标 url。
  • curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE)设置为TRUE 将传输作为curl_exec() 的返回值的字符串返回,而不是直接输出。
  • curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE)设置为 TRUE 以跟随服务器作为 HTTP 标头一部分发送的任何“Location:”标头。
  • curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)用于获取有效 URL 的 cURL 信息。
  • curl_exec($ch)它抓取 URL 并将其传递给变量以显示输出。
  • curl_close($ch)关闭 curl 资源,释放系统资源。

程序:

";
echo "Redirected URL: " . $redirectedUrl . "
";    ?> 

输出:

Original URL: https://geeksforgeeks.org/
Redirected URL: https://www.geeksforgeeks.org/

命令行方法:

  1. 使用 cURL 获取重定向 URL:
    句法:
    curl -Ls -w %{url_effective} -o /dev/null [URL]
    

    描述:

    • curl — 命令名称
    • -s — 静默模式
    • -L - 跟随重定向的位置
    • -D -- -- 在这里转储头文件
    • [URL] — 执行重定向的 URL
    • -o /dev/null — 删除额外的标准输出信息
    • -w '%{url_effective}' — 最终目的地

    示例 1:

    curl -Ls -w %{url_effective} -o /dev/null 
    https://www.geeksforgeeks.org/php-cucrl/
    

    输出:

  2. 使用 cURL 跟踪重定向:

    句法:

    curl -s -L -D - [URL] -o /dev/null -w '%{url_effective}'
    

    示例 2:以下重定向到 404 错误页面。

    curl -s -L -D - 
    https://www.geeksforgeeks.org/php-cucrl/ -o /dev/null -w 
    '%{url_effective}'
    

    输出:

    D:\mycurl\bin>curl -s -L -D - https://www.geeksforgeeks.org/php-cucrl/ 
    -o /dev/null -w '%{url_effective}'
    HTTP/2 404
    server: Apache
    strict-transport-security: max-age=3600; includeSubDomains
    link: ; rel="https://api.w.org/"
    access-control-allow-credentials: true
    x-frame-options: DENY
    x-content-type-options: nosniff
    content-type: text/html; charset=UTF-8
    cache-control: must-revalidate, max-age=3, s-maxage=21600
    date: Mon, 08 Jul 2019 01:34:28 GMT
    
    'https://www.geeksforgeeks.org/php-cucrl/'
    
  3. 跟随重定向到正确的页面:
    示例 3:
    curl -s -L -D - 
    https://www.geeksforgeeks.org/php-curl/ -o /dev/null -w 
    '%{url_effective}'
    

    输出:

    D:\mycurl\bin>curl -s -L -D - https://www.geeksforgeeks.org/php-curl/ 
    -o /dev/null -w '%{url_effective}'
    HTTP/2 200
    server: Apache
    strict-transport-security: max-age=3600; includeSubDomains
    access-control-allow-credentials: true
    x-frame-options: DENY
    x-content-type-options: nosniff
    content-type: text/html; charset=UTF-8
    cache-control: must-revalidate, max-age=3, s-maxage=21600
    date: Mon, 08 Jul 2019 01:34:55 GMT
    
    'https://www.geeksforgeeks.org/php-curl/'