简体   繁体   English

curl_init undefined?

[英]curl_init undefined?

I am importing the contacts from gmail to my page ..... 我正在从gmail导入联系人到我的页面.....

The process does not work due to this error 由于此错误,该过程不起作用

'curl_init' is not defined 'curl_init'未定义

The suggestion i got is to 我得到的建议是

  1. uncomment destination curl.dll 取消注释目标curl.dll
  2. copy the following libraries to the windows/system32 dir: ssleay32.dll and libeay32.dll 将以下库复制到windows / system32目录: ssleay32.dlllibeay32.dll
  3. copy php_curl.dll to windows/system32 将php_curl.dll复制到windows / system32

After trying all these, I refreshed my xampp, but even then error occurs. 在尝试了所有这些之后,我刷新了我的xampp,但即使这样也会发生错误。

This is my page where I am trying to import the gmail contacts: 这是我尝试导入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
}
?>

This code is completely provided for debugging; 此代码完全用于调试; if any optimization is needed, I will try to optimize the code. 如果需要任何优化,我将尝试优化代码。

to install curl with php, you just type the command 要用php安装curl,只需输入命令即可

sudo apt-get install php5-curl

after your install php 安装php后

Create a new php file - like temp.php - and just add: 创建一个新的php文件 - 比如temp.php - 然后添加:

phpinfo();

It should give you information of your entire PHP configuration. 它应该为您提供整个PHP配置的信息。 Scroll through the installed libraries and see if cURL is there. 滚动浏览已安装的库,查看是否存在cURL。 If not, hit the Manual - http://php.net/manual/en/book.curl.php - and get it setup. 如果没有,请点击手册 - http://php.net/manual/en/book.curl.php - 并进行设置。 The instructions there are pretty good. 那里的指示非常好。

with linux: sudo apt-get install php5.6-curl (php5-curl is gone) then restart apache ( sudo service apache2 restart ) 用linux: sudo apt-get install php5.6-curl (php5-curl不见了)然后重启apache( sudo service apache2 restart

also for command line php, for composer and such, simply adding sudo apt-get install php-curl will work because I 'think' its acting on its active version 也适用于命令行php,对于作曲家等,只需添加sudo apt-get install php-curl就可以了,因为我觉得'它的作用就是它的活动版本

resource curl_init ([ string $url = NULL ] )

Does this really appear in your source code? 这真的出现在您的源代码中吗? If so, comment it out, as it's just documentation of curl_init's return type and arguments. 如果是这样,请将其注释掉,因为它只是curl_init的返回类型和参数的文档。

Now, if curl is still giving you trouble at this point, you need to check in php.ini and make sure extension=php_curl.dll does not have a ; 现在,如果curl在这一点上仍然给你带来麻烦,你需要检查php.ini并确保extension=php_curl.dll没有; in front of it. 在它面前。 (I can't tell if that's what you meant by your first comment or not.) Then use XAMPP to restart Apache. (我不知道你的第一条评论是否与你的意思相同。)然后使用XAMPP重启Apache。

For xammp server, go to your php.ini file and remove the ; 对于xammp服务器,请转到php.ini文件并删除; mark from the beginning of the below line - 从下面的行开始标记 -

;extension=php_curl.dll


restart your apache server, now its will work fine :).. 重新启动你的apache服务器,现在它将工作正常:) ..

I use this code block to learn if a client's host/server has curl installed or not 我使用此代码块来了解客户端的主机/服务器是否已安装curl

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM