curl_init не определено? - PullRequest
       33

curl_init не определено?

14 голосов
/ 08 июня 2010

Я импортирую контакты из gmail на свою страницу .....

Процесс не работает из-за этой ошибки

'curl_init' не определено

Я получил предложение

  1. uncomment destination curl.dll
  2. скопируйте следующие библиотеки в каталог windows / system32: ssleay32.dll и libeay32.dll
  3. скопировать php_curl.dll в windows / system32

Попробовав все это, я обновил свой 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 ]

31 голосов
/ 12 сентября 2012

, чтобы установить curl с php, просто наберите команду

sudo apt-get install php5-curl

после установки php

8 голосов
/ 08 июня 2010

Создайте новый php-файл - например, temp.php - и просто добавьте:

phpinfo();

Он должен дать вам информацию обо всей вашей конфигурации PHP.Прокрутите установленные библиотеки и посмотрите, есть ли cURL.Если нет, нажмите Manual - http://php.net/manual/en/book.curl.php - и настройте его.Инструкции там довольно хорошие.

3 голосов
/ 07 января 2017

с Linux: sudo apt-get install php5.6-curl (php5-curl пропал) затем перезапустите apache (sudo service apache2 restart)

также для командной строки php, для композитора и тому подобного, простое добавление sudo apt-get install php-curl будет работать, потому что я «думаю», что он действует в своей активной версии

2 голосов
/ 08 июня 2010

resource curl_init ([ string $url = NULL ] )

Это действительно появляется в вашем исходном коде?Если это так, закомментируйте это, так как это просто документация о типе возвращаемого значения и аргументах curl_init.

Теперь, если curl все еще доставляет вам проблемы, вам нужно проверить php.ini и убедиться, extension=php_curl.dll не имеет ; перед ним.(Я не могу сказать, что вы имели в виду в своем первом комментарии или нет.) Затем используйте XAMPP для перезапуска Apache.

1 голос
/ 08 июля 2014

Для сервера xammp перейдите в файл php.ini и удалите отметку ; в начале строки ниже -

;extension=php_curl.dll


перезагрузите сервер apache, теперь он будет работать нормально :))

0 голосов
/ 17 ноября 2012

Я использую этот блок кода, чтобы узнать, установлен ли на хосте / сервере клиента curl или нет

$ci=@curl_version();
$cv=$ci["version_number"];
if($cv) echo "curl installed";
else echo "curl is not installed";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...