PHP တွင် ဆံပင်ကောက်ကောက်သည် HTTP တောင်းဆိုမှုများကိုလုပ်ဆောင်ရန်အတွက်အားကောင်းသောစာကြည့်တိုက်ဖြစ်သည်။ များစွာသောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့သည် proxy server မှတဆင့်စစ်မှန်သော IP သို့မဟုတ် Access ကိုကန့်သတ်ထားသောအရင်းအမြစ်များကိုဖုံးကွယ်ထားသည့်အတွက်တောင်းဆိုမှုကိုစတင်ရန်လိုအပ်သည်။ ဤဆောင်းပါးတွင် Curl_setoSS ကို Curl_settT function ကို curl_settoS session ကို Curl_Close ကို အသုံးပြု. Curl_Close ကိုပိတ်ထားသည့်အခါ curl_sett function ကိုမည်သို့တပ်ဆင်ရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
ကောက်ကောက်ကို အသုံးပြု. တောင်းဆိုမှုများကိုပေးပို့ခြင်း၏အထွေထွေဖြစ်စဉ်မှာအောက်ပါအတိုင်းဖြစ်သည် -
session ကိုစတင်ရန်: curl_init ()
Set Take options များ - curl_setopt ()
တောင်းဆိုမှုကို: curl_exec ()
Session ကိုပိတ်ပါ။ curl_close ()
ဤဆောင်းပါး၏အဓိကအချက်သည်အဆင့် 2 တွင် proxy server တစ်ခုကိုမည်သို့တည်ဆောက်ရမည်ကိုလေ့လာပါ။
Curl သည် proxy ကို set up လုပ်ရန်အထူးရွေးချယ်စရာများပေးသည်။
curlopt_proxy : proxy server address (IP သို့မဟုတ် Domain Name နှင့် Port)
curlopt_proxyport : proxy server port (optional)
curlopt_proxyuserpwd : proxy server ၏အသုံးပြုသူအမည်နှင့်စကားဝှက်, format ကို username: password (optional)
curlopt_proxype : proxy type, default is default သည် HTTP proxy, ဘုံအမျိုးအစားများတွင် SOCKS5,
နမူနာကုဒ်:
<?php
// ဖြစ်ပေါ်လာခြင်း cURL ရုံးထိုင်အချိန်ကာလ
$ch = curl_init();
// တောင်းဆိုမှုကို set up URL,ဒီမှာနမူနာ interface ကိုဖြစ်ပါတယ်,ဒိုမိန်းအမည်ကိုအစားထိုးပါ gitbox.net
curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");
// တိုက်ရိုက် output ကိုအစားတုံ့ပြန်မှုကိုပြန်
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// proxy server address and port ကိုသတ်မှတ်ပါ
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net"); // proxy server လိပ်စာ
curl_setopt($ch, CURLOPT_PROXYPORT, 8080); // proxy port
// အေးဂျင့် authentication ကိုလိုအပ်လျှင်,အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုသတ်မှတ်ပါ
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");
// လိုအပ်မယ်ဆိုရင် SOCKS5 ဆောင်ရွက်ခြင်း,设置ဆောင်ရွက်ခြင်း类型
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
// တောင်းဆိုမှုကို execute
$response = curl_exec($ch);
// တောင်းဆိုမှုအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
} else {
echo $response;
}
// ရုပ်သိမ်းခြင်း cURL ရုံးထိုင်အချိန်ကာလ
curl_close($ch);
ရွေးချယ်စရာများ | ဥပမာပြပါ |
---|---|
curlopt_proxy | proxy server adx address ကိုသတ်မှတ်ပါ။ IP နှင့်ဒိုမိန်းအမည်ကိုပံ့ပိုးပေးပါမည် |
curlopt_proxyport | proxy server port ကိုသတ်မှတ်ပါ, ပုံမှန် 8080 ဖြစ်ပါတယ် |
curlopt_proxyuserpwd | proxy authentication အတွက်အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုသတ်မှတ်ပါ။ format ကို အသုံးပြုသူ - Pass |
curlopt_proxytype | HTTP (Default), Sococock4, Sococks5 စသည့် proxy အမျိုးအစားများကိုသတ်မှတ်ပါ။ |
curlopt_htpproxytunnel | http proxy ဥမင်လိုဏ်ခေါင်းကို enable လုပ်သင့်သည်ဖြစ်စေ, |
ဥပမာအားဖြင့်, proxy server သည်အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုစစ်ဆေးခြင်းနှင့် SOCKS5 proxy တစ်ခုလိုအပ်ပါက၎င်းကိုသင်ဤကဲ့သို့သောရေးနိုင်သည်။
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 1080);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
$response = curl_exec($ch);
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);
Proxy server ကိုအလွယ်တကူတပ်ဆင်ရန် Curlopt_Sety စီးရီး option ကိုသုံးပါ ။
Proxy လိပ်စာသည် Domain အမည်သို့မဟုတ် IP ကိုဖော်ပြသင့်ပြီး port ကိုသီးခြားစီသတ်မှတ်နိုင်သည်။
authentication လိုအပ်သည့်အခါ curlopt_proxyuserpwd မှတဆင့်အသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုပေးချေပါ။
proxy type ကိုလိုအပ်ချက်နှင့်အညီသတ်မှတ်ထားသည်။ HTTP သည်ပုံမှန်အမျိုးအစားဖြစ်ပြီး SOCKS5 proxy ကိုသတ်မှတ်သောအခါအထူးသတ်မှတ်ရန်လိုအပ်သည်။
အသုံးပြုပြီးနောက်အရင်းအမြစ်ကိုထုတ်လွှတ်ရန် curl_close ကို ခေါ်ပါ။
ဤနည်းအားဖြင့် PHP တွင် curl ကို HTTP တောင်းဆိုမှုများကိုစတင်ရန် Proxy server နှင့်ပူးပေါင်းရန်ချိတ်ဆက်နိုင်သည့်ကွန်ယက်ပတ်ဝန်းကျင်လိုအပ်ချက်များကိုဖြည့်ဆည်းရန်စတင်ရန်အစပြုရန်။