Curl_init undefined?
Я импортирую контакты из gmail на мою страницу.....
Процесс не работает из-за этой ошибки
'curl_init'
не определен
Я получил предложение
- uncomment destination curl.dll
- скопируйте следующие библиотеки в каталог windows/system32:
ssleay32.dll
и libeay32.dll
- скопировать 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
}
?>
Этот код полностью предоставляется для отладки; если какая-либо оптимизация необходима, я попытаюсь оптимизировать код.
Ответы
Ответ 1
Создайте новый php файл, например temp.php, и просто добавьте:
phpinfo();
Он должен предоставить вам информацию о всей вашей конфигурации PHP. Прокрутите установленные библиотеки и посмотрите, есть ли cURL. Если нет, нажмите Manual - http://php.net/manual/en/book.curl.php - и настройте его. Инструкции там очень хорошие.
Ответ 2
чтобы установить curl с php, просто введите команду
sudo apt-get install php5-curl
после установки php
Ответ 3
resource curl_init ([ string $url = NULL ] )
Это действительно отображается в вашем исходном коде? Если да, прокомментируйте это, поскольку это просто документация типа и аргументов curl_init.
Теперь, если curl все еще дает вам проблемы на этом этапе, вам нужно проверить php.ini
и убедиться, что extension=php_curl.dll
не имеет ;
перед ним. (Я не могу сказать, что это означает ваш первый комментарий или нет.) Затем используйте XAMPP для перезапуска Apache.
Ответ 4
с linux:
sudo apt-get install php5.6-curl
(php5-curl ушел)
затем перезапустите apache (sudo service apache2 restart
)
также для командной строки php, для композитора и т.д. просто добавление sudo apt-get install php-curl
будет работать, потому что я 'думаю' его действие на его активную версию
Ответ 5
Для сервера xammp перейдите в файл php.ini и удалите метку ;
с начала следующей строки -
;extension=php_curl.dll
перезагрузите сервер Apache, теперь он будет работать нормально:)..
Ответ 6
Я использую этот кодовый блок, чтобы узнать, установлен ли клиентский хост/сервер или нет
[email protected]_version();
$cv=$ci["version_number"];
if($cv) echo "curl installed";
else echo "curl is not installed";