2010-01-28 35 views
15

मैं कभी नहीं देखता कि PUT/DELETE अनुरोध कैसे भेजा गया है।PHP/POST/PUT/अनुरोध अनुरोध कैसे करें और PHP में अनुरोध प्रकार का अनुरोध कैसे करें?

PHP में इसे कैसे करें?

मुझे पता है कि कर्ल गए एक GET/पोस्ट अनुरोध भेजने के लिए:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); 
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookieFile); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_TIMEOUT, 4); 

लेकिन यह कैसे PUT/DELETE अनुरोध करना है?

+0

एक PUT अनुरोध पाने के लिए आपको नहीं कर सकते कर $ _PUT [ 'var'], लेकिन: 'parse_str (file_get_contents (' php: // input '), $ put_vars); ' – Strae

+0

' $ _PUT' असफल हो जाएगा, लेकिन' php: // input' काम करता है। – user198729

उत्तर

46
DELETE उपयोग curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
PUT उपयोग curl_setopt($ch, CURLOPT_PUT, true);

एक वैकल्पिक उस पर cURL स्थापित किया जा रहा निर्भर नहीं करता एक custom HTTP stream context साथ file_get_contents उपयोग करने के लिए किया जाएगा के लिए

$result = file_get_contents(
    'http://example.com/submit.php', 
    false, 
    stream_context_create(array(
     'http' => array(
      'method' => 'DELETE' 
     ) 
    )) 
); 

बाहर चेक सामान्य शब्दों में, अगर आप कुछ "गैर GET" अनुरोध भेजना चाहते पीएचपी

+0

यह काम कर रहा है और मैंने इसके लिए वोट दिया है, लेकिन दोष यह है कि file_get_contents के माध्यम से 'रिमोट यूआरएल ओपनिंग' कॉन्फ़िगरेशन में अवरुद्ध हो सकता है और इसे – Ekonoval

+0

@ एकोनोवल सुनिश्चित किया गया है, जैसे कि इसे ध्यान में रखना होगा कि कर्ल शायद स्थापित नहीं किया गया :) – Gordon

3

साथ बाकी रही पर इन दो लेख, आप अक्सर curl के साथ काम करेंगे।


और आप जिस अनुरोध को भेज रहे हैं उसे कॉन्फ़िगर करने के लिए curl_setopt फ़ंक्शन का उपयोग करेंगे;

  • CURLOPT_CUSTOMREQUEST: बजाय "GET" का उपयोग करने के लिए एक कस्टम अनुरोध विधि या संभव विकल्पों में से बड़ी राशि के बीच, अनुरोध प्रक्रिया में परिवर्तन करना, आप कम से कम उन विकल्पों (के हवाले से) द्वारा दिलचस्पी होगी HTTP अनुरोध करते समय "HEAD"। यह "DELETE" या अन्य, अधिक अस्पष्ट HTTP अनुरोध करने के लिए उपयोगी है।
  • CURLOPT_HTTPGET: TRUE HTTP अनुरोध विधि को रीसेट करने के लिए GET पर रीसेट करने के लिए।
  • CURLOPT_POST: TRUE नियमित HTTP POST करने के लिए।
  • CURLOPT_PUT: TRUE HTTP PUT पर एक फ़ाइल। PUT पर फ़ाइल CURLOPT_INFILE और CURLOPT_INFILESIZE के साथ सेट की जानी चाहिए।


बेशक , curl_setopt केवल समारोह आप इस्तेमाल करेंगे नहीं है, कर्ल के साथ अनुरोध भेजने के उदाहरण के लिए curl_exec के प्रलेखन पृष्ठ को देखें।

(हाँ, कि उदाहरण बहुत सरल है, और एक GET अनुरोध भेजता है - लेकिन आप वहाँ से निर्माण करने के लिए सक्षम होना चाहिए ;-))

+0

'CURLOPT_POST' का उपयोग GET/DELETE अनुरोध भेजने के लिए किया जाता है, PUT/DELETE के बारे में क्या? PUT के लिए – user198729

+0

, आपके पास 'CURLOPT_PUT' है, और DELETE के लिए, ऐसा लगता है कि आपको' CURLOPT_CUSTOMREQUEST' –

+1

सही उपयोग करना होगा। दूसरे लेख में यह वही है जो मैंने लिंक किया है। – Gordon

संबंधित मुद्दे