পিএইচপি-র একটি URL- এ ডেটা পোস্ট করুন


96

কীভাবে আমি পিএইচপি (কোনও ফর্ম ছাড়াই) কোনও ইউআরএল-তে পোষ্ট ডেটা পাঠাতে পারি?

আমি একটি ফর্ম পূরণ এবং জমা দেওয়ার জন্য একটি পরিবর্তনশীল প্রেরণের জন্য এটি ব্যবহার করতে যাচ্ছি।

উত্তর:


199

আপনি যদি পিএইচপি কোড থেকেই কোনও URL- এ ডেটা পোস্ট করার সন্ধান করছেন (কোনও এইচটিএমএল ফর্ম ব্যবহার না করে) এটি কার্ল দিয়ে করা যেতে পারে। এটি দেখতে এটির মতো হবে:

$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 );

এটি নির্দিষ্ট ইউআরএলে পোস্টের ভেরিয়েবলগুলি প্রেরণ করবে এবং পৃষ্ঠাটি কী করবে $ প্রতিক্রিয়াতে।


4
আপনার সমাধান যতটা সঠিক, আমার মনে হয় ওপি এইচটিএমএল ফর্মের সাহায্যে এটি কীভাবে করতে হয় তা জানতে চেয়েছিল। যদিও প্রশ্নটি খুব স্পষ্ট ছিল না।
হেলেন নীলি

আমরা সমস্যাটি বুঝতে পারি না তবে এটি প্রোগ্রামটিকে লক করে দেয়।
আলবাট্রস

4
কি বিস্তৃত যত্ন CURLOPT_FOLLOWLOCATION, CURLOPT_HEADERএবং CURLOPT_RETURNTRANSFERকরবেন? আমি পুরোপুরি বুঝতে পারি না এমন কোডটি অনুলিপি না করা পছন্দ করি।
স্টিফান ফ্যাবিয়ান

4
@ মাইকের কথাটি সত্য হলেও আমি প্রথম থেকেই পরিষ্কার হওয়া বা উত্তরে ব্যাখ্যা করার উত্তরে সমস্ত কিছু পছন্দ করতে পছন্দ করি কারণ লোকেরা সাধারণত আরও উত্তর না পাওয়ার জন্য একটি উত্তরের জন্য স্ট্যাকওভারফ্লোতে আসে।
স্টিফান ফ্যাবিয়ান

4
@ স্টেফান আমি অনুভব করেছি উত্তরটি পুরোপুরি পরিষ্কার ছিল ... এটি প্রশ্নের সমাধান করেছে। যদি আপনার বোঝার স্তরটি উত্তরের স্তরের নীচে থাকে তবে আরও কিছু গবেষণা করুন। তিনি ব্যাখ্যা করার যে প্রয়োজন আছে $urlএকটি হয়েছে $কারণ পিএইচপি, কেমন আছেন একটি পরিবর্তনশীল নির্দেশ করে যে? আপনি কোথায় রেখা আঁকেন? "... আরও প্রশ্ন না করা" এমন কারও মনোভাব নয় যা স্ব-শিক্ষায় সফল হবে, বিশেষত প্রোগ্রামিংয়ে।
মাইক

75

সিআরএল-কম আপনি পিএইচপি 5 এ ব্যবহার করতে পারেন

$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
ফাইল_জেট_কন্টেন্টগুলি প্রায়শই তৃতীয় পক্ষের হোস্টগুলিতে অক্ষম থাকে এবং সিআরএল একমাত্র বিকল্প
ক্রিপটোনাইটডভ

4
@ ক্রিপটোনাইট উপরে আমি জানি এটি প্রায়শই অক্ষম থাকে। আমি আমার উত্তরটির উপরে একটি লাইন রেখেছি "CURLESS"
পিএইচডি। বুড়াক üztürk

10

আপনার প্রশ্নটি বিশেষভাবে পরিষ্কার নয় তবে আপনি যদি কোনও ফর্ম ব্যবহার না করেই কোনও পোস্টটিতে পোষ্ট ডেটা প্রেরণ করতে চান তবে আপনি fsockopen বা curl ব্যবহার করতে পারেন।

এখানে উভয়ের একটি বেশ ভাল ওয়াকথ্রু আছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.