curl_init undefined?

时间:2010-06-08 12:00:48

标签: php curl

我正在将联系人从gmail导入我的页面.....

由于此错误,该过程无效

  

'curl_init'未定义

我得到的建议是

  1. 取消注释目标curl.dll
  2. 将以下库复制到windows / system32目录:ssleay32.dlllibeay32.dll
  3. 将php_curl.dll复制到windows / system32
  4. 尝试了所有这些之后,我刷新了我的xampp,但即使这样也会发生错误。

    这是我尝试导入gmail联系人的页面:

    <?php
    resource curl_init  ([  string $url = NULL  ] )
    
    $ch = curl_init();
    
    
    curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    
    
    curl_exec($ch);
    
    
    curl_close($ch);
    ?>
    
    <?php
    echo "hi";
    
    if($_POST['submit'] != '') {
        echo "hi";
    
        $clientlogin_url = "https://www.google.com/accounts/ClientLogin";
    
    
        $clientlogin_post = array(
        "accountType" => "HOSTED_OR_GOOGLE",
        "Email" => $_POST['Email'],
        echo "Passwd" => $_POST['Passwd'],
        "service" => "cp",
        "source" => "tutsmore/1.2"
        );
    
    
        $curl = curl_init($clientlogin_url);
    
    
        curl_setopt($curl, CURLOPT_POST, true);
    
    
        curl_setopt($curl, CURLOPT_POSTFIELDS, $clientlogin_post);
    
    
        curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    
    
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
    
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    
        $response = curl_exec($curl);
    
    
    
        preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches);
        $auth = $matches[1];
    
    
        $headers = array("Authorization: GoogleLogin auth=" . $auth);
    
    
        $curl = curl_init('http://www.google.com/m8/feeds/contacts/default/full?max-results=10000');
    
    
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    
    
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    
        $feed = curl_exec($curl);
    
    
        echo "contacts".$contacts=array();
    
    
        $doc=new DOMDocument();
    
    
    
        if (!empty($feed)) $doc->loadHTML($feed);
    
    
        $xpath=new DOMXPath($doc);
    
    
        $query="//entry";
        $data=$xpath->query($query);
    
        foreach ($data as $node) {
    
    
            $entry_nodes=$node->childNodes;
    
    
            $tempArray=array();
    
    
            foreach($entry_nodes as $child) {
    
    
                $domNodesName=$child->nodeName;
    
                switch($domNodesName) {
                    case 'title' : { 
                            $tempArray['fullName']=$child->nodeValue;
                        } break
                        ;
                    case 'email' : {
                            if (strpos($child->getAttribute('rel'),'home')!==false)
                                $tempArray['email_1']=$child->getAttribute('address');
                            elseif(strpos($child->getAttribute('rel'),'work')!=false)
                                $tempArray['email_2']=$child->getAttribute('address');
                            elseif(strpos($child->getAttribute('rel'),'other')!==false)
                                $tempArray['email_3']=$child->getAttribute('address');
                        } break
                        ;
                }
            }
            if (!empty($tempArray['email_1']))$contacts[$tempArray['email_1']]=$tempArray;
            if(!empty($tempArray['email_2'])) $contacts[$tempArray['email_2']]=$tempArray;
            if(!empty($tempArray['email_3'])) $contacts[$tempArray['email_3']]=$tempArray;
        }
        foreach($contacts as $key=>$val) {
    
            echo $key."<br/>";
        }
    }
    else {
    
        ?>
    <form action="<?=$PHP_SELF?>" method="POST">
        <table>
            <tr>
                <td>Email:</td><td><input type="text" name="Email" /></td>
            </tr>
            <tr>
                <td>Password:</td><td><input type="password" name="Passwd" /></td>
            </tr>
            <tr><td colspan="2" align="center">tutsmore don't save your email and password trust us.</td></tr>
            <tr><td colspan="2" align="center"><input type="submit" name="submit" value="Get Contacts" /></td></tr>
        </table>
    </form>
        <?php
    }
    ?>
    

    此代码完全用于调试;如果需要进行任何优化,我将尝试优化代码。

6 个答案:

答案 0 :(得分:31)

用php安装curl,只需输入命令

即可
sudo apt-get install php5-curl

安装php后

答案 1 :(得分:8)

创建一个新的php文件 - 比如temp.php - 只需添加:

phpinfo();

它应该为您提供整个PHP配置的信息。滚动浏览已安装的库,查看是否存在cURL。如果没有,请点击手册 - http://php.net/manual/en/book.curl.php - 并进行设置。那里的说明非常好。

答案 2 :(得分:3)

用linux: sudo apt-get install php5.6-curl(php5-curl消失了) 然后重启apache(sudo service apache2 restart

对于命令行php,对于作曲家等,只需添加sudo apt-get install php-curl即可,因为我认为&#39;它的活动版本

答案 3 :(得分:2)

resource curl_init ([ string $url = NULL ] )

这是否真的出现在您的源代码中?如果是这样,请将其注释掉,因为它只是curl_init的返回类型和参数的文档。

现在,如果此时卷曲仍然给您带来麻烦,您需要检查php.ini并确保extension=php_curl.dll前面没有;。 (我不知道你的第一条评论是否与你的意思相符。)然后使用XAMPP重启Apache。

答案 4 :(得分:1)

对于xammp服务器,请转到 php.ini 文件,并从下一行的开头删除;标记 -

;extension=php_curl.dll


重新启动你的apache服务器,现在它可以正常工作:).. ..

答案 5 :(得分:0)

我使用此代码块来了解客户端的主机/服务器是否已安装curl

$ci=@curl_version();
$cv=$ci["version_number"];
if($cv) echo "curl installed";
else echo "curl is not installed";