PHP में एक URL के लिए पोस्ट डेटा


94

मैं PHP में URL के लिए (बिना फॉर्म के) POST डेटा कैसे भेज सकता हूं?

मैं एक चर भेजने और एक फार्म जमा करने के लिए इसका उपयोग करने जा रहा हूं।

जवाबों:


193

यदि आप PHP कोड से ही URL में डेटा पोस्ट करना चाहते हैं (बिना html फॉर्म का उपयोग किए) तो इसे कर्ल के साथ किया जा सकता है। यह इस तरह दिखेगा:

$url = 'http://www.someurl.com';
$myvars = 'myvar1=' . $myvar1 . '&myvar2=' . $myvar2;

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );

यह पोस्ट चर को निर्दिष्ट url पर भेजेगा, और पेज प्रतिफल $ प्रतिक्रिया में क्या होगा।


2
जितना आपका समाधान सही है, मुझे लगता है कि ओपी यह जानना चाहता था कि इसे HTML फॉर्म के साथ कैसे करना है। हालांकि सवाल बहुत स्पष्ट नहीं था।
हेलन नेली

हम समस्या को समझ नहीं पाए लेकिन इसने कार्यक्रम को बंद कर दिया।
अल्बाट्रोस

2
क्या CURLOPT_FOLLOWLOCATION, CURLOPT_HEADERऔर CURLOPT_RETURNTRANSFERक्या करना है? मैं कोड की प्रतिलिपि नहीं बनाना पसंद करता हूं जिसे मैं पूरी तरह से नहीं समझता।
स्टीफन फेबियन

1
@ जब तक यह सच है मैं एक जवाब में सब कुछ है पसंद करेंगे या तो शुरू से ही स्पष्ट हो या उत्तर में समझाया क्योंकि लोग आमतौर पर जवाब पाने के लिए स्टैकओवरफ़्लो में आते हैं और अधिक प्रश्न प्राप्त करने के लिए नहीं।
स्टीफन फैबियन

1
@Stefan मुझे लगा कि जवाब पूरी तरह से स्पष्ट था ... इसने सवाल को संबोधित किया। यदि आपकी समझ का स्तर उत्तर के स्तर से नीचे है, तो कुछ और शोध करें। क्या उसे यह भी समझाने की ज़रूरत है कि php में $urla होने के $कारण यह है कि आप एक चर को कैसे इंगित करते हैं? आपने पंक्ति को कहां खींचा था? "... अधिक प्रश्न नहीं करना" किसी का दृष्टिकोण नहीं है जो कि स्व-शिक्षा, विशेष रूप से प्रोग्रामिंग में सफल होगा।
माइक

75

cURL- कम आप php5 में उपयोग कर सकते हैं

$url = 'URL';
$data = array('field1' => 'value', 'field2' => 'value');
$options = array(
        'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    )
);

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
var_dump($result);

6
file_get_contents को अक्सर थर्ड पार्टी होस्ट्स पर निष्क्रिय कर दिया जाता है और CURL एकमात्र विकल्प है
KryptoniteDove

3
@KryptoniteDove मुझे पता है कि यह अक्सर अक्षम होता है। मेरे उत्तर के कारण मैंने अपने उत्तर "CURLESS" के ऊपर एक लाइन लगा दी
बुरक

10

आपका प्रश्न विशेष रूप से स्पष्ट नहीं है, लेकिन यदि आप किसी प्रपत्र का उपयोग किए बिना एक url में POST डेटा भेजना चाहते हैं, तो आप fsockopen या curl का उपयोग कर सकते हैं।

यहाँ दोनों का बहुत अच्छा चलना है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.