2010-06-08 40 views
12

Tôi import danh bạ từ gmail đến trang của tôi .....curl_init undefined?

Quá trình này không hoạt động do lỗi này

'curl_init' không được định nghĩa

Các gợi ý tôi đã nhận là

  1. điểm đến uncomment curl.dll
  2. bản sao các thư viện sau vào thư mục windows/system32: ssleay32.dlllibeay32.dll
  3. bản sao php_curl.dll để Windows/System32

Sau khi thử tất cả những, tôi làm mới xampp của tôi, nhưng thậm chí sau đó lỗi xảy ra.

Đây là trang web của tôi, nơi tôi đang cố gắng để nhập danh bạ 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 
} 
?> 

Mã này là hoàn toàn được cung cấp để gỡ lỗi; nếu cần tối ưu hóa, tôi sẽ cố gắng tối ưu hóa mã.

Trả lời

8

Tạo một file php mới - như temp.php - và chỉ cần thêm:

phpinfo(); 

Nó sẽ cung cấp cho bạn thông tin của toàn bộ cấu hình PHP của bạn. Cuộn qua các thư viện đã cài đặt và xem liệu cURL có ở đó không. Nếu không, hãy nhấn Manual - http://php.net/manual/en/book.curl.php - và cài đặt nó. Các hướng dẫn có khá tốt.

2

resource curl_init ([ string $url = NULL ])

Điều này thực sự xuất hiện trong mã nguồn của bạn? Nếu vậy, hãy bình luận nó ra, vì nó chỉ là tài liệu về kiểu trả về của curl_init và các đối số.

Bây giờ, nếu curl vẫn đang khiến bạn gặp khó khăn tại thời điểm này, bạn cần phải đăng ký php.ini và đảm bảo extension=php_curl.dll không có ; trước mặt. (Tôi không thể nói nếu đó là những gì bạn có nghĩa là bình luận đầu tiên của bạn hay không.) Sau đó sử dụng XAMPP để khởi động lại Apache.

30

để cài đặt curl với php, bạn chỉ cần gõ lệnh

sudo apt-get install php5-curl 

sau khi cài đặt php của bạn

+6

Có vẻ như anh ấy đang sử dụng cửa sổ chứ không phải linux. –

+0

để hoàn thành điều này tôi đã phải 'php5enmod curl' và để' service apache2 restart' trên debian – steven

0

tôi sử dụng khối mã này để tìm hiểu nếu máy chủ/máy chủ của khách hàng có curl cài đặt hay không

[email protected]_version(); 
$cv=$ci["version_number"]; 
if($cv) echo "curl installed"; 
else echo "curl is not installed"; 
1

Đối với máy chủ xammp, hãy truy cập tệp php.ini của bạn và xóa dấu ; từ đầu dòng thấp -

;extension=php_curl.dll 


khởi động lại máy chủ apache của bạn, bây giờ nó sẽ làm việc :) tốt ..

2

với linux: sudo apt-get install php5.6-curl (php5-curl đã biến mất) sau đó khởi động lại apache (sudo service apache2 restart)

cũng cho dòng lệnh php, cho nhà soạn nhạc và như vậy, chỉ đơn giản là thêm sudo apt-get install php-curl sẽ làm việc vì tôi nghĩ rằng 'diễn xuất của mình trên phiên bản hoạt động