PHP卷曲在某些情况下有效,但在某些情况中无效


PHP Curl Work in somecase and not in somecases

此代码运行良好

  <?php 
            // create curl resource 
            $ch = curl_init(); 
            // set url 
            curl_setopt($ch, CURLOPT_URL, "http://ipdev.in/"); 
            //return the transfer as a string 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            // $output contains the output string 
            $output = curl_exec($ch); 
            echo $output;
            // close curl resource to free up system resources 
            curl_close($ch);      
    ?>

但下面两组代码不起作用我没有收到错误,但在这些情况下,浏览器加载栏只是在旋转,永远不会停止。页面显示加载和加载很长一段时间,但没有从URL加载。问题出在哪里?

 <?php 
            // create curl resource 
            $ch = curl_init(); 
            // set url 
            curl_setopt($ch, CURLOPT_URL, "https://iiitd.ac.in/"); 
            //return the transfer as a string 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            // $output contains the output string 
            $output = curl_exec($ch); 
            echo $output;
            // close curl resource to free up system resources 
            curl_close($ch);      
    ?>
    <?php 
            // create curl resource 
            $ch = curl_init(); 
            // set url 
            curl_setopt($ch, CURLOPT_URL, "http://iiitd.ac.in"); 
            //return the transfer as a string 
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
            // $output contains the output string 
            $output = curl_exec($ch); 
    echo $output;
            // close curl resource to free up system resources 
            curl_close($ch);      
    ?>
链接https://iiitd.ac.in/重定向到https://www.iiitd.ac.in/,因此您需要修改curl代码。您需要将CURLOPT_FOLLOWLOCATION设置为true

看看下面的解决方案:

<?php
// create curl resource
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, "https://iiitd.ac.in/");
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// added follow location
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// $output contains the output string
$output = curl_exec($ch);
echo $output;
// close curl resource to free up system resources
curl_close($ch);