2012-03-18 38 views
5

Ai đó có thể viết một kịch bản PHP mà tái tạo các chức năng của lệnh shell linux này? Curl PHP với cờ --data?

curl -X POST -u "USERNAME:PASS" \ 
    -H "Content-Type: application/json" \ 
     --data '{"aps": {"alert": "this is a message"}}' \ 
      https://mywebsite.com/push/service/ 

Tôi nghĩ rằng tôi gần như đã nhận nó trong mã của tôi, nhưng tôi không chắc chắn làm thế nào để xử lý các thuộc tính --data.

Đây là những gì mã của tôi trông như thế cho đến nay:

$headers = array(); 
    $headers[] = "Content-Type: application/json"; 
    $body = '{"aps":{"alert":"this is a message"}}'; 

    $ch = curl_init(); 
    // Set the cURL options 
    curl_setopt($ch, CURLOPT_URL,   "https://mywebsite.com/push/service/"); 
    curl_setopt($ch, CURLOPT_USERPWD,  "USERNAME:PASSWORD"); 
    curl_setopt($ch, CURLOPT_POST,   TRUE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,  $body); 
    curl_setopt($ch, CURLOPT_HTTPHEADER,  $headers); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

    // Execute post 
    $result = curl_exec($ch); 

    // Close connection 
    curl_close($ch); 
    print_r($result); 
+1

bạn đã có mã? cũng đặt nó vào chúng tôi! – dldnh

+0

Ok đã thêm ngay bây giờ – John

Trả lời

1

dụ trong:

http://code.google.com/apis/gdata/articles/using_cURL.html

curl https://www.google.com/accounts/ClientLogin \ 
--data-urlencode [email protected] --data-urlencode Passwd=new+foundland \ 
-d accountType=GOOGLE \ 
-d source=Google-cURL-Example \ 
-d service=lh2 
+1

Hey Zital, thực sự mã của tôi hoạt động! vừa phạm sai lầm. Vì vậy, nếu bạn muốn chỉ cần sao chép mã của tôi và dán nó vào và nói rằng tôi chỉ cần thực hiện một sai lầm gõ một nơi nào đó, tôi sẽ chấp nhận câu trả lời của bạn. – John

+0

nó không quan trọng :) – ZiTAL

2

Một quy tắc chung: sử dụng "--libcurl example.c" tùy chọn để có được curl để tạo mã nguồn cho chương trình C sẽ sử dụng libcurl. API rất giống với PHP/CURL như bạn sẽ thấy và sau đó bạn sẽ nhanh chóng nhận ra rằng --data chuyển thành CURLOPT_POSTFIELDS.

Ồ, và bạn sẽ lưu ý rằng việc sử dụng -X hoàn toàn không cần thiết! ;-)