cURL یا همان Client URL library برای ارتباط بین سرور های مختلف با پروتکل های FTP (برای کار با فایل ها) ، HTTP (دیدن صفحات وب با مرورگر) ، telnet ، gopher و بیشتر استفاده می شود.
برای استفاده از تابع cURL در php ، حتما باید کتابخانه libcurl
از قبل نصب شده باشد. اگر از هرکدام از پکیج هایی مثل XAMPP ، wamp ، easyphp برای نصب محیط , mysql apache ، php استفاده کرده باشید ، پس می توانید مطمئن باشید که این کتابخانه از قبل نصب شده است.
همچنین همه سرور ها امروزه این پکیج را نصب دارند و با خیال راحت می توانید آموزش cURL در php را دنبال کنید
بعد از نصب cURL ، باید این extention را در فایل پیکربندی (php.ini) فعال کنید که برای لوکال هاست یا سرور اشتراکی شما نیاز به این تنظیمات نیست
1 2 |
//Remove semi colon (;) to enable ;extension=php_curl.dll |
کارهایی که با cURL در php میتوانیم انجام دهیم
برای دسترسی و مدیریت دسترسی به یک فایل از راه دور ، cURL به صورت میانجی استفاده می شود برای ،
- Submit فرم
- احراز هویت (Authentication)
- آپلود فایل
- انتقال فایل (FTP)
مثال : فرض کنید سایتی دارید که قصد دریافت اطلاعات بروز سکه ، ارز را از بانک یا سایت معتبر دریافت کنید یا آخرین ساعات پرواز و حرکت هواپیما ، قطار یا اینکه اطلاعات آب و هوا یا حتی نتایج بازی هایی مثل فوتبال و والیبال و غیره .. را در قسمتی از سایت خود یا حتی اپ اندروید برای کاربران نمایش دهید . اینجاست که باید از cURL استفاده کنید تا نتابج بروز و آپدیت شده و لحظه ای را نمایش بدید
بدون cURL در php ، می توانیم از تابع سیستمی خود php به اسم allow_url_fopen
استفاده کنیم که بنا بر دلایل امنیتی (باگ File Inclusion) به هیچ عنوان توصیه نمی شود استفاده کرد.
برای مثال ، تابع file_get_contents() به صورت پیش فرض داده های نا امن را در خروجی بازگشت می دهد .
در پروژه یا اسکریپت هایتان برای اطمینان از فعال بودن cURL می توانید از شرط زیر قبلا از فراخوانی توابع زیرمجموعه curl_* بهره ببرید
1 2 3 |
if( !extension_loaded('curl')){ exit('cURL Disabled On Your PHP Environment'); } |
بلاک cURL در php
در php ، قسمت cURL باید بین دو جفت تابع زیر قرار داده شوند.
1 2 3 |
$ch = curl_init(URL Syntax); ... curl_close($ch); |
- تابع
curl_init()
سئشن مربوط به مدیریت url پاس داده شده را return می کند . - تابع
curl_close()
با بستن سئشن cURL در php بلاک کد crul را به پایان می رساند و منابع مصرف شده از حافظه (memory) را آزاد می کند
آپشن های cURL در php
تابع curl_setopt()
برای ست کردن آپشن های درخواست curl برای یک صفحه استفاده می شود . این تابع هندلر curl (که در کد بالا داخل متغییر $ch
ذخیره کردیم) ، اسم آپشن و مقدارشان را به عنوان پارامتر قبول می کند.
می توانیم از یک تابع curl دیگر به اسم curl_setop_array()
برای ست کردن آرایه ای از چند آپشن بهره ببریم
1 |
curl_setopt ($ch, CURLOPT_HEADER, 1); |
ثابت (Constant) های آپشن cURL
CURLOPT_FILE
– فایلی برای ذخیره نتیجه CurlCURLOPT_URL
– آدرس URLی که برای دریافت داده از آن ، نیاز داریم . اگر این url درcurl_init()
مشخص شده باشید ، نیازی به این آپشن نداریدCURLOPT_RETURNTRANSFER
– برگشت دادن نتیجه در قالب رشته برای ذخیره در متغییر بجای چاپ آن در مرورگرCURLOTP_HTTPHEADER
– ست کردن فیلد ها در قالب آرایه (مناسب برای ارسال فرم)CURLOPT_POST
– برای ارسال داده با متد پست باید مقدار TRUE را ست کنیدCURLOPT_USERPWD
– ست کردن نام کاربری / رمزعبور اگر آدرس مورد نظر نیاز به احراز هویت داشت.
درخواست cURL در php
مانند php ، متد های POST و GET برای ارسال درخواست cURL استفاده می شوند که پیش فرض آنها GET است. ثابت CURLOPT_POST
برای ارسال درخواست با متد POST استفاده می شود و پارامتر های CURLOPT_POSTFIELDS
برای ارسال پارامتر آرایه ای از فیلد ها استفاده می شود.
اجرای درخواست cURL
بعد از ست کردن متد و پارامتر های درخواست (request) ، تابع curl_exec()
برای اجرای درخواست cURL در php استفاده می شود
1 |
$result = curl_exec($ch); |
این تابع یک مقدار boolean (true, false ) یا رشته ای از داده های بر اساس مقادیر CURLOPT_RETURNTRANSFER
برگشت (return) می دهد.
مثال cURL در php
کد php زیر تمام اطلاعات و کد های صفحه آدرس url مورد نظر را دریافت و نمایش می دهد .
برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $url = "http://php.net/"; $content = curlRequest($url); print $content; function curlRequest($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); $response = curl_exec($ch); $body = substr( $response, 1024 ); fclose($ch); return $content; } ?> |
مثال دوم : خواندن محتوای صفحه اول سایت (چندگانه)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?php // URLs we want to retrieve $urls = array( 'http://www.google.com', 'http://www.bing.com', 'http://www.yahoo.com', 'http://www.twitter.com', 'http://www.facebook.com' ); // initialize the multihandler $mh = curl_multi_init(); $channels = array(); foreach ($urls as $key => $url) { // initiate individual channel $channels[$key] = curl_init(); curl_setopt_array($channels[$key], array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true )); // add channel to multihandler curl_multi_add_handle($mh, $channels[$key]); } // execute - if there is an active connection then keep looping $active = null; do { $status = curl_multi_exec($mh, $active); } while ($active && $status == CURLM_OK); // echo the content, remove the handlers, then close them foreach ($channels as $chan) { echo curl_multi_getcontent($chan); curl_multi_remove_handle($mh, $chan); curl_close($chan); } // close the multihandler curl_multi_close($mh); |
curl_multi_init
: مانند curl_init برای مقدار دهی اولیه Curl به صورت multihandler استفاده می شود .curl_multi_add_handle
: برای اضافه کردن چندین کانال به شی multihandler استفاده می شود .curl_multi_getcontent
: برای بازیابی محتوای پاسخ های ایجاد شده .
توضیح کدهای بالا :
- ابتدا در خط ۳ آرایه ای سایت هایی که می خواهیم صفحه ی اول آنها با استفاده از Curl بازیابی شود داریم .
- در خط ۱۲ شی multihandler را ایجاد می کنیم .
- در خط ۱۵ به تعداد سایت هایی که داریم کانال هایی را ایجاد می کنیم این کانال ها خود در واقع دارای اطلاعات Curl های منفرد هستند .
- در خط ۲۵ اون کانال هایی را که ایجاد کردیم به شی multihandler اختصاص می دهیم .
- در خط ۳۱ یکی یکی درخواست ها اجرا می شود و تا زمانی که نتیجه درخواست های اجرا شده Ok باشد آن ها را اجرا می کند , مقدار خروجی آن را چاپ می کند , آن درخواست را از آرایه حدف می کند و سراغ درخواست بعدی می رود
- و در آخر کار , تمام شی های مربوط به Curl را Close می کند .
بحث cURL در php بسیار گسترده ، پرکاربرد و جالب است که در این مقاله آموزشی به آن پرداختیم . هر گونه سوال و مشکلی در پیاده سازی کد ها داشتید از قسمت نظرات با ما در ارتباط باشید .
موفق باشید
سلام جناب شفیعی
قصد اسکرپ سایت tsetmc را دارم، با goutte و curl امتحان کردم ولی موفق نشدم، ممنون میشم اگه راهنمایی بفرمایین که ایراد کار از کجاست؟
سلام.
خود سایت وب سرویس برای گرفتن اطلاعات رو در اختیار شما قرار میده و نیاز به اسکرپ نیست
دانلود کد php وب سرویس tsetmc
http://members.tsetmc.com/Site.aspx?ParTree=111A12
راهنمای کار با وب سرویس
http://members.tsetmc.com/Site.aspx?ParTree=11141111
سلام وعرض ادب
برای نمایش محتوی صفحه اول سایت دیجی کالا جواب نمیده.
آیا راه دیگری برای این منظور وجود داره؟
ممنون
سلام. ممنون.
در کامنت های این پست https://netparadis.com/extract-webpage-urls-php در موردشون کمی بحث شده ببینید از این کدها میتونید استفاده کنید یا نه.
سلام وقتتون بخیر
من در حال آموزش Php هستم
میخوام بدونم برای اینکه موجودی محصولاتم با یک سایت دیگر به روز بشه از چه روشی باید استفاده کنم و چه مطالبی باید آموزش ببینم
با تشکر <3
سلام. ممنون
کار با api رو یاد بگیرید
https://netparadis.com/php-restful-web-service
سلام. خسته نباشید. خیلی جامع بود، ازتون ممنونم
ببخشید در این بخش : خواندن محتوای صفحه اول سایت (چندگانه) یک کدی قرار دادید برای استخراج اطلاعات چند سایت.
داخل لوکال هاست کار میکنه. ولی داخل هاست سرور کار نمیکنه دلیلی داره ؟
سلام ممنون.
احتمالا بافر فعال نیست اول کد php بعد تگ
ببخشید. این بافر رو باید از کجا فعال کرد؟ کدش چیه؟
کد قبلی رو گفتم دیگه کافیه اول کد اینو اضافه کنید : ob_start();
سلام ممنون بابت راهنمایی.
من کد رو اضاف کردم ولی باز کار نکرد. نمیدونم چرا داخل هاست اصلی کار نمیکنه. ولی تو لوکال هاست کار میکنه ؟
بازم ممنون که کمک کردین. واقعا سایتون عالی هست.
سلام. به نظورتون میتونه مشکل از هاست باشه.
مثلا curl_multi_init(); پشتیبانی نکنه و بخاطر همنون ، کد کار نکنه ؟
سلام.
بله تو بعضی سرور ها curl_multi_exec رو غیرفعال کردن و اجازه استفاده رو نمیدن
سلام خسته نباشید . من خیلی مقاله هارو خوندن . سایت شما و مقاله شما خیلی خوب و کامل بود . دست خوش . ببخشید یک سوال داشتم . من برای استخراج اطلاعات از صفحه دسته بندی محصولات مشکل دارم . با curl_init() فقط میشه یک صفحه از اون دسته بندی رو گرفت و نمیشه پیمایش کرد و از صفحه های دیگه اون دسته بندی که برای مثال ۱ تا ۹ هست رو اطلاعاتش رو گرفت ؟ ممنون میشم بهم کمک کنید
سلام. ممنون.
باید آرایه ای از این آدرس ها بسازید و بعد یک حلقه foreach برای اجرای جداگانه هر کدام از curl ایجاد کنید
سلام وقت شما بخیر
من یک افزونه خریدم که برای کارکرد درست آن نیاز به فعال سازی توابع زیرمجموعه curl_multi در هاستم می باشد. اما پشتیبان هاست میگه از لحاظ امنیتی دسترسی را مسدود کردند. آیا واقعا این تابع از لحاظ امنیتی خطرناک است و آیا جایگزینی برای این تابع است؟
ممنون از راهنمایی تان،
سلام. ممنون.
خیر از نظر امنیتی مشکلی نداره.
هاست بهتری تهیه کنید :
https://my.mihanwebhost.com/aff.php?aff=9801
سلام واقعا عالی بود .
یک سوال داشتم . اگه بخواهیم با استفاده از curl چندین سایت رو استخراج کنیم اون موقع باید چیکار کرد . و در آخر هم چطوری این اطلاعات رو در متغیر های جدا گانه بریزیم . مثلا اطلاعات هر سایت داخل یک متغیر باشه. تا بتوان بخشی از اطلاعات اون صفحه رو با استفاده از کلاس به دست آورد و نمایش داد
سلام.
از تابع curl_multi_init استفاده کنید:
سایت خود php
https://www.php.net/curl_multi_init
و مثال کامل هم در این سایت هست کمی اسکرول کنید کد کامل استفاده رو قرار داده
سلام کدی هست که برای همه سایت ها کارآمد باشد و بتوان اطلاعات اون صفحه سایت رو استخراج کرد ؟ بعضی از سایت ها مانع استخراج اطلاعات می شوند به خاطر اون گفتم. ممنون برای همه آموزش هاتون . منتظر جواب شما هستم
سلام.
خیر شما باید بیس قضیه رو یاد بگیرید تا بتونید طبق اون سایت کد رو تغییر بدید
خب من می خواهم یک مقایسه قیمت در بین فروشگاه های مختلف ایجاد کنم مثل ترب . بعد قیمت رو بره از سایت اصلی بگیره و داخل برگه محصول من نمایش بده. قیمت ها هم به طور خودکار بروز بشون.
به نظرتون واسه همچین کاری بهترین روش برای استخراج قیمت از فروشگاه مختلف چی می تونه باشد . ممنون که همیشه مارو یاری می کنید ؟
ترب قیمت ها رو استخراج نمیکنه بلکه فروشنده ها یا مدیران فروشگاه این قیمت ها رو لحاظ می کنند.
این روش استخراج scraping هست :
https://netparadis.com/web-scraping-php/
ممنون آقای شفیعی که راهنمایی کردین . تشکر
سلام وقت بخیر
من میخوام از این api برای دریافت اطلاعات ارز اسفاده کنم
curl -X GET “https://gateway.accessban.com/public/web-service/list/price?format=json&limit=30&page=1” -H “accept: application/json” -H “Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvZ2F0ZXdheS5hY2Nlc3NiYW4uY29tXC9wdWJsaWMiLCJzdWIiOiIzNjdkMjExNi03MmQwLTVjNTItYjc3OS05NDBmMTBjMjljZTAiLCJpYXQiOjE2MTg5Mzc2MzcsImV4cCI6MTc3NjcwNDAzNywibmFtZSI6Ilx1MDY0NVx1MDY0OFx1MDY0Nlx1MDYyNyBcdTA2MjdcdTA2MmVcdTA2NDRcdTA2MjdcdTA2NDJcdTA2Y2MtMTIxNzgifQ.fIgbXgQppwOgVwR9BJxCe7_5RGnHSkOq5dw7rR6HGVI”
ولی نمدونم چجوری باید از این لینک استفاده کنم
چون سبک این لینک با لینکی که در آموزش ها بکار بردین متفاوته ممنون میشم راهنمایی کنید
سلام ممنون
سلام
من میخوام یک سری فرم ساده را اتوماتیک پرکنم مثلا این فرم ارتباط
https://site.com/contact-us
از طریق curl اگه ممکنه توضیح بدید پر کردن اتوماتیک یک فرمی که مثلا چند فید نام و فامیل و تلفن داره کدش چه شکلی نوشته میشه
ممنون
سلام. فرم به اینصورت هست :
form method=”post” id=”userForm” action=”https://SITE.com/contact-us”>
پس باید با متد پست به این صفحه https://SITE.com/contact-us درخواست curl ارسال کنید
مقادیری هم که باید به فرم ارسال کنید به اینصورت هست:
که می بینید بصورت name مشخص شده که form[name] هست برای این فیلد و فیلد های دیگر هم این چنین هست.
باید بصورت یک کویری استرینگ ارسال کنید به اینصورت
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
پس کد curl همان چیزی است که در پست گفته شده و فقط پارامتر بالا رو اضافه کنید و به جای post_string هم مقادیر فیلد با نام آنها رو بصورت آرایه تعریف و بعد http_build_query رو روش اجرا کنید تا کویری استرینگ بشه.
$data = array(‘name’=>$name, ’email’=>$email);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_POST, true);
موفق باشید.
سلام من هرکاری کردم اطلاعات سایت بورس http://www.tsetmc.com رو بخونم نشد سایت های عادی رو راحت واکشی می کنم ولی این سایت نه.دلیل خاصی داره؟
سلام. بله از سمت خود سایت دسترسی به اطلاعات از طریق ربات ها رو بستند و بصورت عادی نمیتونید اطلاعاتشون رو بخونید
تشکر
راهی هست اینکار رو بشه انجام داد؟ یه اسکریپت python تووی گیت هاب دیدم اینکار رو کرده بود.
خود سایت سرویس هایی رو برای استفاده از وب سرویس ارایه داده که این اسکریپت های پایتون هم از این استفاده می کنند
http://www.tsetmc.com/Site.aspx?ParTree=111411&LnkIdn=51
دانلود اسکریپت php :
http://cdn.tsetmc.com/Site.aspx?ParTree=111A12
من میخوام به این فرم ساده لاگین کنم https://*:*/home اما هر کار میکنم نمیشه میشه کدشو بدید .
سلام.
بنده اطلاعی ندارم این چه فرمی هست.
اگر متعلق به شما نیست بهتره بیخیال بشید و هیچ روش دورزدن یا بروت فورسی انجام ندید که لاگ گرفته میشه و ممکنه به دردسر بیوفتید.
موفق باشید.
سلام وقت بخیر میخوام اطلاعات یکی از نماد های بورس رو بخونم ولی اطلاعات بهم ریخته ای برمیگردونه با curl و file_get_contents پیاده سازی کردم ولی نشده خروجی یک سری رشته های عجیب غریبه بنظر جلو ربات رو گرفتن چجوری میشه دورش زد ممنون میشم راهنمایی کنید
سلام. ممنون.
در کامنت های این پست https://netparadis.com/extract-webpage-urls-php در موردشون کمی بحث شده ببینید از این کدها میتونید برای بایپس استفاده کنید یا خیر.
سلام میخوام هر موقع در لینک: https://divar.ir/s/mashhad/real-estate آگهی ثبت شد اون آگهی هم داخل سایت من نمایش بده اینکار با کتابخانه simple_html_dom انجام دادم مشکلی که داشت این بود که فقط اخرین اگهی نمایش میده و اگهی های قدیم قابل نمایش نیست حالا راه حلی هستش که اگهی های قدیمی هم نمایش بدم یا اینکه داخل پایگاه دادم ذخیره کنم؟
سلام. به خاطر ساختار ajax است که بصورت lazy load هست و از api استفاده میشه که درخواست ارسال میشه و از اونجا خونده میشه.
پس به api هدر با مقداری ارسال میشه و هر بار last-post-date آخرین اگهی خوانده میشه .
پس نیاز نیست که از dom استفاده کنید به راحتی میشه api سایت دیوار رو روی سایت پیاده کرد و نیاز نیست هربار درخواست ارسال کنید ببینید آگهی جدیدی ثبت شده یا خیر.

سلام
برای صحت سنجی پرداخت در مایکت داخل مستنداتش گفته اطلاعت زیر رو به این آدرس بفرستیم تا پاسخ بده :
در سرویس زیر پارامترهای زیر را باید با مقادیر مناسب جایگزین نمایید:
X-Access-Token: 650e0714-a4348-v475-a40-3f3ec5fcf001
پارامتر {PACKAGE_NAME} برابر نام پکیج برنامه شماست: مثلا org.medrik.roosterwars
پارامتر {SKU_ID} برابر نام محصول درونبرنامهای شما است: مثلا GEM2
پارامتر {TOKEN} برابر توکن خرید درونبرنامهای است: مثلا ۰۹۲۱۸۱
————————————————— سرویس زیر باید درخواست بشه ——————————–
[GET]
[Header: X-Access-Token]
https://developer.myket.ir/api/applications/{PAKCAGE_NAME}/purchases/products/{SKU_ID}/tokens
/{TOKEN}
من میخوام از curl استفاده کنم چطوری باید این کارو بکنم ممنون میشم ؟
سلام. بنابر اطلاعاتی که دادید این کد برای اتصال به api مورد نظر می تونید استفاده کنید. با جایگزینی اطلاعات درستس و چند تست می توانید خروجی مناسب را دریافت کنید.
موفق باشید.
سلام آیا میشه با کمک curl ما سایتی رو ببینیم و آی پی مشتری نیفته و آی پی ای که میفته برای همین برنامه ی php باشه که curl رو توش استفاده کردیم ؟
سلام. بله امکانش هست. با اجرای curl آدرس ip شما نمیفته و آدرس محل اجرای اسکریپت نمایش داده میشه
میشه لطفا نمونه کدی قرار بدید که با اجرای اسکریپتش بشه یه سایتی رو نشون داد که آی پی مشتری نیفته لطفا کمک کنید
کد مثال اول (مثال cURL در php) دقیقا همین کار را انجام میدهد و میتونید از این کد استفاده کنید. البته باید در هاست اجرا شود تا آیپی مشتری نمایش داده نشود
آقای شفیعی تو کاری که از من خواسته شده گفتن که یه درخواستhttp رو که میدیم curl ، شامل هدر ها و بدنه هایی میباشد که این هدر هاو بدنه هارو curl میگیره و از خودش میفرسته به سرور اصلی حالا این هدر هارو چجوری باید بگیرم از درخواست مشتری و به curl بدم ؟
متاسفانه دقیق نمیدونم به چه صورت دریافت میشه باید روی یک محیط تستی بررسی و کدنهایی بدست بیاد و توصیه میشه داکیومنت curl در سایت اصلی php.net رو مطالعه کنید
سلام حالتون خوبه؟
با اجرای این کدها صفحه خالی بهم نشون میده.
علت چیه؟
include (‘simple_html_dom.php’);
if(!extension_loaded(‘curl’)){
exit(‘cURL Disabled On Your PHP Environment’);
}
$urls = array(
‘https://www.roocket.ir’,
‘https://www.google.com’,
);
$multi_handle = curl_multi_init();
$chanels = array();
foreach ($urls as $key => $url) {
$chanels[$key] = curl_init();
curl_setopt_array($chanels[$key], [
CURLOPT_URL =>$url,
CURLOPT_RETURNTRANSFER=>TRUE,
CURLOPT_FOLLOWLOCATION =>TRUE,
CURLOPT_SSL_VERIFYPEER =>TRUE
]);
curl_multi_add_handle($multi_handle, $chanels[$key]);
}
$active = null;
do {
$status = curl_multi_exec($multi_handle, $active);
} while ( $status == CURLM_OK && $active == CURLM_OK);
foreach ($chanels as $chan) {
echo curl_multi_getcontent($chan);
curl_multi_remove_handle($multi_handle, $chan);
curl_close($chan);
}
curl_multi_close($multi_handle);
سلام ممنون.
curl_multi_select کردن یادتون نره.
لینک نمونه : https://www.php.net/manual/en/function.curl-multi-exec.php
موفق باشید.
سلام من ب یک اروری برخوردم و تیکت زدم ب پشتیبان هاست گفتن ما نمی تونیم فعال کنیم خودتون باید با کد درستش کنید
عکس ارور:http://s8.picofile.com/file/8367400634/2019_07_21_22_26_45.png
چطوری میتونم حلش کنم؟
سلام. باید از سمت هاست این مورد باز بشه. در غیراینصورت باید کدنویسی رو طور دیگه ای تغییر بدید که اگر زیاد به php مسلط نیستید نمیتونید کاری پیش ببرید و به این سادگی نمیشه از اینجا راهنمایی خاصی ارایه داد.
اگر هاست داغون باشه میتونید یک فایل php.ini بسازید و disable_functions رو خالی کنید در غیر اینصورت با راه های معمول نمیشه چیزی رو دور زد
به هر حال راحتتر هست که هاست خود را به یک هاست معتبر تغییر بدید.
موفق باشید.
ممنونم
هاست رو تغییر دادم
سلام وقت بخیر
ممنون و خدا قوت به خاطر آموزش و وقتی که میزارید
بنده یه اسکریپت روی هاستم نصب کردم برای ارسال موزیک
که موزیک ها رو از آدرس میگیره
الان مشکلی دارم اینه که درخواست curl انجام نمیشه و فایلی تو هاست دانلود آپلود نمیشه
مجبور شدم هاست دانلود عوض کنم بازم دریافتی تو هاست دانلود ندارم
با هاست سایت هم صحبت کردم گفتن مشکلی از طرف ما نیست اگه هست از هاست دانلوده
برای محدودیت curl هم گفتن تمام دسترسی های هاست شما باز هست و محدودیتی از طرف ما صورت نگرفته
هاست و دریافتم هم از ایران هست نمیدونم مشکل از کجا هست
سلام. ممنون. خوشحالیم که مفید واقع شده.
روی هاست مقصد یک اکانت ftp بسازید و از این سمت انتقال و دریافت و آپلود ها رو با این کانکشن انجام بدید
اتصال به ftp در php
موفق باشید.
سلام
کد کدوم خط میتونم متغیر یا سورس رو بگیرم (کجا باید داخل متغیر بریزم)؟
و اینکه یکبار چاپ میکنه ، چیکار کنم خودش چاپ نکنه؟
با تشکر از آموزش هاتون.
سلام.
محتوای برگشتی تابع curlRequest و توابع print و Echo یا var_dump خروجی رو چاپ می کنند.
موفق باشید.
ممنون از آموزش خوبتون
یه سوالی که دارم چطوری کاری کنیم فقط روزی یک بار اجرا بشه
سلام. خوشحالیم که مفید واقع شده.
با استفاده از قابلیت کرون جاب (cron job) در هاست اینکار را انجام بدید که در مقاله آموزش cron job بطور کامل آموزش داده شده.
موفق باشید.
من نمی خوام از کرون جاب استفاده بکنم و از کد زیر استفاده کردم حالا نمی دونم بهینه وهست یا خیر
$active_date = $yp_options [‘yp_options_footer-layouts-date’];
$current_time = current_time(‘YmdH’); )
$active_date = date(‘Ymd’, strtotime($active_date. ‘ + 2 days’)).’03’;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => “http://www.mysite.ir/api/method/get_license_product”,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => “get”,
CURLOPT_POSTFIELDS => “”,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => array(
“Authorization: $yp_activator”,
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
حالا تو لوکال همچی درست کار میکنه ولی توی یه هاست رایگان تست کردم کار نکرد
خود کرل تو هاست فعالا ولی AsynchDNS غیر فعال بود میتونه دلیلش از این باشه؟
بله امکانش هست بهتره از هاستینگ بپرسید تا ببینید همچین محدودیتی وجود دارد یا خیر چون هاست های رایگان به دلیل موارد امنیتی شدیدا محدود هستند.
در اختیار گذاشتن اطلاعهات و آموزش هایی که حاصل نتایج و تلاش هایی است که خود کسب نموده اید که برای همه به نوعی کاربرد موفقیت آمیزی داشته باشد بسیار تحسین برانگیز است
سلام.
ممنونم. موفق باشید
با سلام و احترام
ممنونم که اموزش های رایگان رو در اختیار ما قرار میدهید.
یک سوال داشتم ، من با روش file get contacts استفاده میکنم سورس اصلی سایت نمایش داده نمیشه و فکر کنم به خاطر کدهای js باشه.
ممنون میشم این سایت رو بررسی کنید : http://www.sanarate.ir
برای جدا سازی و گرفتن دلار به صورت regexr لازم دارم.
ممنون میشم در این مورد راهنمایی کنید چطور سورس رو سالم بگیرم.
با تشکر.
سلام. بعضی وب سایت ها بنابه دلایلی این محدودیت ها رو روی سایت اعمال می کنند تا ربات ها نتونند به راحتی محتوای سایت رو اسکرپ کنند که شما باید بتونید به یک راحی این مورد رو دور بزنید مثلا میتونید از cURL و ست کردن چندین هدر مختلف محتوای سایت رو از طریق اسکریپت بخونید.
توضیحات این پست رو می تونید مطالعه کنید : https://netparadis.com/extract-webpage-urls-php
موفق باشید.
سلام علیکم
از اینکه وقت میذارید و با حاصوله جواب میدید بسیار ممنونم
من می خوام یه فایل PHP درخواست بفرسته به:
https://api.kavenegar.com/v1/613472435563797A3767733D/verify/lookup.json?receptor=09361234567&token=852596&template=myverification
بعد پاسخ رو نشون بده
ممنون میشم اگه کمکم کنید
کلی توی مطالب سایت شما گشتم اما دقیق نتونستم درستش کنم
سلام. خواهش می کنم. دقیقا همین مورد رو در آموزش
ارسال و دریافت jSON توسط cURL در php
ببینید
موفق باشید.
خیلی ممنون که اینقدر زود جواب دادید از شما خیلی سپاس گذارم ولی اگر میشه یک آیدی تلگرام از خودتون بهم بدید من در این زمینه چند تا سوال داشتم ازتون خیلی ممنون
خواهش می کنم. اطلاعات تماس در بخس تماس باما ی سایت وجود دارد.
با سلام خیلی مننون بابت این آموزش ولی اگر میشه بگین چجوری ازین طریق لاگین کنیم ممنون میشم
سلام . خوشحالم که مفید واقع شده . کد زیر برای لاگین شدن با cURL است میتونید بررسی و استفاده کنید
موفق باشید.
سلام ممنون بابت اموزش
به جای رشته کد
file_get_contents(‘php://input’); //get all inputs
تو curl کدی هست که بشه جای گزین کد بالا کرد ؟
سرور هاستم file_get_contents رو بسته اما curl بازه
سلام . خوشحالم مفید واقع شده .
بله همین آموزش در مورد curl است که بصورت یک تابع میتونید استفاده کنید :
و به اینصورت فراخوانی کنید :
file_get_contents_curl("php://input");
موفق باشید.
ممنون هم بابت اینکه سریع جواب دادین
هم سایت خوب و مفیدتون
عالی بود
خواهش می کنم. موفق و پیروز باشید.
عالی بود
خوشحالم که مفید بوده .
موفق و پیروز باشید.