سایت های خدماتی برای ارئه ی بهتر خدمات به کاربراشون از سرویسی به اسم وب سرویس ( web service ) استفاده می کنن . شما با وب سرویس می تونید از خدمات یک سایت توی سایت خودتون استفاده کنید . مثلن وقتی شما از یک بانک تقاضای درگاه پرداخت اینترنتی برای سایتتون می کنید اون بانک با ارائه ی یک وب سرویس به شما کاری می کنه که اتصال سایتتون با بانک برقرار بشه .
وب سرویس در اصل یک آدرس اینترنتیست که قابلیت دریافت و ارسال یه سری اطلاعات رو داره . برنامه نویس های وب وقتی آدرس وب سرویس و اطلاعات ارسالی و دریافتی اون رو داشته باشن می تونن سایتشون رو با اون وب سرویس پیوند بزنن و از خدمات اون سایت توی سایت خودشون استفاده کنن . اتصال به وب سرویس با زبون asp.net نسبت به php کار راحتتریه و خیلی سخت نیست . من می خوام توی این مطلبم روش اتصال به وب سرویس با استفاده از زبون php رو بهتون یاد بدم .
قبل از شروع باید بگم از طریق ۲ تا کتابخونه می شه وب سرویس با زبون php نوشت ، هم با کتابخونه nusoap و هم با کتابخونه soap . این دو تا کتابخونه فرق زیادی با هم ندارن ، فقط اگر سرورتون soap فعال نباشه باید از nusoap استفاده کنید ! یعنی اینکه در کنار کدتون کتابخونه رو هم باید قرار بدین ، در صورتی که اگر soap سرور فعال باشه کتابخونه داخل سرور موجوده و نیازی به قرار دادن کتابخونه نیست . من طرز نوشتنش با کتابخونه soap رو می خوام بهتون توضیح بدم و به nusoap نمی پردازم . همونطور هم که گفتم قبل از خرید هاست حتمن مطمئن بشید soap روی اون سرور فعال هست چون اگر نباشه وب سرویس کار نمی کنه و باید با nusoap بنویسید .
فرض کنید من می خوام از وب سرویس یک سایت خدمات پیامک استفاده کنم و به وسیله ی اون وب سرویس ، از سایت خودم اس ام اس ارسال کنم . اول از همه باید آدرس وب سرویس سایت خدمات دهنده ی پیامک رو داشته باشم که فرض می کنم آدرسش http://sms.com/webservice.asmx هست . چیز دیگه ای که نیاز داریم متغیرهای ارسال و دریافت هست که این متغیرها هم توسط شرکت ارائه دهنده باید به شما داده بشه . مثلن توی این مثال من متغیرهایی که دارم اینهاست :
این متغیرهاییه که باید به وب سرویس ارسال بشه . توی توضیحاتی که سایت ارائه دهنده ، از وب سرویسش بهتون می ده حتمن گفته شده که این متغیرها باید با چه متدی ارسال بشن ، در اینجا فرض می کنیم این متغیرها با متد ssendsms باید ارسال بشن . ولی از اون طرف هم متغیرهایی از جانب وب سرویس ارسال می شه و در این مثال فرض می کنیم بعد از ارسال متغیرهای بالا متغیرهای پایین با متد smsresult به سایت ما ارسال می شه :
خب حالا همه ی اطلاعات استفاده از این وب سرویس فرضی رو داریم و باید برنامش رو بنویسم . دستورات زیر رو برای این سرویس می نویسیم :
<?php
$sms_username = ‘jentelman’;
$sms_password = ‘123456’;
$sms_from = ‘3000123’;
$to = ‘09121111111’;
$message = ‘پیام تستی’;
$client = new SoapClient(“http://sms.com/webservice.asmx?WSDL”);
$params = array(
‘username’ => $sms_username,
‘password’ => $sms_password,
‘from’ => $sms_from,
‘to’ => $to,
‘message’ => $message
);
$results = $client->sendsms( $params );
if ($results->smsresult == ‘success’ )
echo ‘ارسال پیام با موفقیت انجام شد’;
else
echo $results->smsresult;
?>
۵ خط اول کد بالا تعریف کردن متغیرهاست . من گفتم که نام کاربریم توی سایت ارائه دهنده jentelman و پسوردم ۱۲۳۴۵۶ هست . همچنین گفتم که پیامی که می خوام ارسال کنم با عنوان “پیام تستی” هست و از شماره ی ۳۰۰۰۱۲۳ به شماره ی ۰۹۱۲۱۱۱۱۱۱۱ قصد ارسال دارم .
برنامه از خط ششم به بعدش مراحل اتصال به وب سرویس رو می گذرونه . توی خط ششم آدرس وب سرویس رو دادم و گفتم می خوام از این وب سرویس استفاده کنم . متغیر $client رو هم به وب سرویس دادم که ازش برای ارتباط استفاده کنم .
توی خط هفتم یک آرایه با عنوان $params باز کردم و تمام متغیرهایی که باید ارسال بشن رو بهش دادم و همونطور که می بینید اسم متغیرهایی که وب سرویس قبول می کنه رو آوردم و مقابلش هم متغیرهایی که از خط اول تا پنجم تعریف کردم رو قرار دادم . الان این متغیرها در قالب یک آرایه آماده ان که به وب سرویس ارسال بشن .
بعد از تموم شدن آرایه و مقدار دهی ، توی خط ۱۴ اومدم و متغیری به اسم $results تعریف کردم و مقابلش نوشتم که اطلاعات آرایه با متد sendsms به وب سرویس ارسال بشه . حالا همه ی متغیرها با متدی که وب سرویس قبول می کنه ارسال شدن .
از اون طرف وب سرویس هم کار خودش رو انجام می ده و پیامی رو به متغیر smsresult که توضیح دادم می فرسته . توی خط ۱۵ گفتم که اگر اون پیام عبارت success بود عنوان “ارسال پیام با موفقیت انجام شد” رو نمایش بده و بعد توی خط ۱۷ گفتم اگر اینچنین نبود عنوان پیام دریافتی رو نمایش بده تا بفهمیم مشکل کجاست . البته توی مثال دیدید که متغیرهایی که وبسرویس ارسال می کنه رو آوردم ، می تونیم برای هر کدومشون مثل success یک پیام خطا تعریف کنیم . یعنی اینکه بگیم مثلا اگر erroruser توسط وبسرویس دریافت شد عبارت “خطا در نام کاربری” نمایش داده بشه که من توی کد بالا برای کوتاه شدن کد فقط برای success یک پیام تعریف کردم و بقیه ی مقادیر دریافتی رو گفتم که مستقیم نشون بده .
ممنون
سلام.
فقط میتونم بگم دمت گرم داداش عالی بود.
فقط اگه میشه همینو با nusoap هم آموزش بدی.
خیلی خیلی ممنون.
سلام.
عالی بود احسنت اما میشه با nusoap هم توضیح بدید همین مثالو.
بعد اینکه کاش یه آدرس میدادید که کار میکرد یه وبسرویس فعال منظورمه تا ما جواب بگیریم.
ممنون.
با nusoap هم مثل همین روشه فقط قبل از کدها باید nusoap رو باز کنی . کتابخونه nusoap رو از اینجا می تونی دانلود کنی : http://sourceforge.net/projects/nusoap
وب سرویس معمولن توی سایت های خدماتی وجود داره ولی برای استفاده ازشون باید عضو سایت بشی . می تونی برای تمرین از وبسرویس سایت زرین پال استفاده کنی ، نمونه های آماده هم داره .
دمت گرم داداش خیلی گلی.
موفق باشی.
سلام دوباره به دوستان و جواد عزیز ببخشید که پست پیاپی میدم.
۱- خواستم بگم آیا میشه که همین اتصال رو با یک برنامه تحت ویندوز انجام بدیم مثلا با دلفی بتونیم به سایت زرین بال وصل شیم و سرویس بگیریم؟
۲- یک وبسرویس اگه بخایم بنویسیم مثلا php سرور ما باشه و delphi کلاینت ما باشه و از طریق دلفی متنی رو به وبسرویس خودمون بفرستیم و اون پاسخی به ما بده،این میشه؟ لطفا کمکم کنید آقا جواد.
یا اگه کتابی در مورد ساخت وبسرویس در php میشناسید معرفی کنید.
ممنون بسیار ممنون…
آره می شه همچین کاری کرد . توی #C یه قسمتی هست که می شه وب سرویس رو اضافه کرد و ازش استفاده کرد . این مقاله رو بخونی می فهمی .
توی دلفی هم باید همچین قسمتی باشه . متاسفانه من به این زبون آشنایی ندارم ، ولی مطمئنن یه قسمتی برای اضافه کردن وب سرویس و استفاده ازش توی محیط برنامه هست . شاید این تاپیک کمکت کنه .
دمت گرم جواد جون عالی بود.
دستت درد نکنه، مفید بود
البته چند تا لینک هم بگذارید بهتر میشه و خواننده مجبور نیست جستجو کنه
مثل این لینک: http://php.net/manual/en/soapclient.soapclient.php
سلام خسته نباشید ممنون از سایت خوبتون
می خواستم بدونم چه جوری میشه با این کدی که نوشتید برای چند نفر مختلف پیامک ارسال کرد؟
ممنون
این بستگی به وبسرویسی داره که ازش استفاده می کنید ، اگر توی این کد فرض کنیم متغیر $to رو می شه به صورت آرایه ای به وبسرویس ارسال کرد باید شماره ها رو به صورت یه آرایه ارسال کنیم . البته وبسرویس هایی که برای پیامک ساخته شدن حتمن متغیری برای ارسال آرایه ی شماره ها دارن . با فرض اینکه توی این مثال $to یه آرایه باشه باید اینجوری شماره ها رو ارسال کرد :
$fvar = array(‘09123456789′,’09121111111′,’09191111111′,’09193456789’);
$to = $fvar;
سلام من وقتی نام تابعی که تو وب سرویس هست رو $client->sendsms( $params ); به جای این میزنم میگه undefind یعنی این تابع تو کلاس soap نیست
مگه اینجا نباید نام تابع وارد کرد.
توی این مثالی که زدم $params تابع نیست ! بلکه یه آرایه از اطلاعات وبسرویسه و بستگی به نوع وبسرویس داره … اگه طبق مثالم آرایه رو باید ارسال کنی مثل من باید یه آرایه بسازی و بفرستی . ولی متغیرهای آرایه باید طبق وبسرویس چیده بشن
پشنهاد می کنم راهنمای وبسرویس رو حتمن ببینی شاید نوع چینششون با مثال من فرق داشته باشه .
سلام یه سوال داشتم
من با وب سرویس یه شرکت کار می کنم متغیرهایی که از جانب وب سرویس ارسال می شه یه پارامتر ورودی داره .من چه جوری باید پارامتر ورودی رو تو کد بالا لحاظ کنم
ممنون
توی کد بالا پارامترای ورودی رو من توی این چند خط تعریف کردم :
$sms_username = ‘jentelman’;
$sms_password = ’۱۲۳۴۵۶′;
$sms_from = ’۳۰۰۰۱۲۳′;
$to = ’۰۹۱۲۱۱۱۱۱۱۱′;
$message = ‘پیام تستی’;
وبسرویسی که استفاده می کنی باید ببینی چه پارامترایی رو دریافت می کنه و متناسب با اون ورودی ها رو بسازی
سلالم جواد جان چطور میشه این کد رو در ۲ فایل جداگانه اسفاده کد
یا به عبارت دیکر فیلدهایی باشد که متن و شماره مقصد رو بنویسیم
ممنون
خب کافیه یه فرم بسازی که توش بشه متن و شماره رو وارد کرد . بعد باید مقابل $to و $message به جای مقدار ثابت دو تا متغیر POST تعریف کنی و به فرم بگی مقادیر وارد شده رو به این تابع POST کنه . تابع هم اطلاعات رو می گیره و به جای اون دو تا مقدار ، مقادیر پست شده رو جایگزین می کنه و می فرسته
جواد جان سلام
…
اخیرا سایت سازمان بورس بانک اطلاعاتی رو به صورت نمونه در اختیار گذاشته تا شما بتونی آخرین اطلاعات رو تویه سایت یا نرم افزار خودت داشته باشی
…
http://old.tsetmc.com/Site.aspx?ParTree=111A12
…
سوالم اینه که چطور می تونم این بانک رو با اکسل لینک کنم تا بتونم از طریق ابزارهای اکسل دیتاها رو تحلیل کنم
…
باتشکر
از وبسرویس مستقیم نمی شه توی اکسل استفاده کرد ولی می شه یه کلاسی نوشت که اطلاعات رو از وبسرویس بگیره و توی دیتابیس ذخیره کنه ( البه اگه وبسرویس اجازه بده اطلاعات رو تفکیک شده دریافت کرد ) بعد می شه از دیتابیس خروجی اکسل گرفت و اونجا همه ی اطلاعات رو دید
سلام.چطوری باید اس ام اس دریافت کنیم؟
برای دریافت توی پنل ها معمولن قسمتی هست به اسم ارسال به URL که پیام های دریافتی با متد POST معمولن به یه آدرسی ارسال می شن ، توی اون قسمت می تونید آدرس یک فایل PHP یا ASP یا هر چیز دیگه رو بدید که پیام های دریافتی به اون فایل پست بشن و توی اون فایل هم با متد پست تعریف کنید با اطلاعات دریافتی چی کار کنه
با سلام و خسته نباشید
۱٫اگر امکان دارد تکه کدی را معرفی کنید که بتواند پوشه های( فقط پوشه) داخل یک پوشه مشخص را داخل تگ select نمایش بدهد لطفا
۲٫چکونه میتوانم آدرس یک include را به وسیله echo تعین کنم ؟
include “echo x
کد اولی که می خوای این هست :
<?php
$Mydir = '';
foreach(glob($Mydir.'*', GLOB_ONLYDIR) as $dir)
{
$dir = str_replace($Mydir, '', $dir);
echo ''.$dir.'';
}
?>
در مورد سوال دوم نفهمیدم دقیقن منظورت چیه !
آدرس رو مقابل include می نویسی دیگه ! echo برای چی ؟ :/
سلام ممنونم ببخشید که دوباره مزاحم میشم سوالم رو کاملتر میکنم
مثلا میخوام پوشه های داخل پوشه پلاگین رو توی تگ سلکت نمایش بده
من با انتخاب یک آپشن که نام یک پوشه هست رو که به آدرس اینکلود اضافه میکنم درحقیقت آدرس روکامل میکنم و آدرسم این باشه
a include “plagin/$poshe/action.php”; a
هر پوشه عملکرد متفاوتی رو تعین میکنه
اگه میشه قسمت اول سوالم رو کاملتر جواب بده و نام پوشه رو وارد کد بکن
خیلی خیلی ممنونم که جواب دادی
منظورم از کاملتر اینه که هم نام پوشه پلاگین رو وارد کنی و هم داخل تگ سلکت یا به حالت رادیو باکس پوشه هارو نشون بده واگر امکانش باشه از داخل هر پوشه عکسی رو با نام screenshot.png کنارش نشون بده
باز هم معذرت میخوام که وقت گرانبهای شمارو میگیرم
با تشکر سعید اصغری
خب من مقابل متغیر $Mydir رو خالی گذاشتم و این ینی پوشه روت رو بررسی می کنه !
هر پوشه ای که بخوای باز بشه و پوشه های داخل اون پوشه رو نشون بده ، باید مقابل این متغیر اسم پوشتو بزنی
لازم هم نیست از echo یا چیز دیگه ای استفاده کنی !
اگه پوشه هات ثابت هستن می تونی اسماشون رو توی یک آرایه یا جدول ( دیتابیس ) تعریف کنی و از اونجا به متغیر $Mydir مقدار بدی .
اگه پوشه هات ثابت نیستن و هی اضافه یا حذف می شن باید از حلقه استفاده کنی .
یه حلقه باید بزنی و این کد رو توش بزاری که پوشه هارو توی حلقه انتخاب و مقداراشونو به $Mydir بده .
نمی دونم تونستم کامل توضیح بدم یا نه ولی فکر کنم منظورت همین بود
عالی بود ساده روان و کاربردی حرف نداشت
سلام
آقا جواد این کد php که دادی رو باید کجا بزاریم؟
چطوری بخوایم مثلا در آدرس xxx.com/testsms قرار بگیره؟
اگه از این کد استفاده بشه از طریق سورس صفحه و… یوزر و پسورد ما رو کسی نمیبینه؟؟
ممنون میشم جواب رو به ایمیلم ارسال کنید و اینجا بزارید تا بدرد بقیه هم بخوره
khademolhojaj5@yahoo.com
با تشکر
این کد رو توی یه فایل پی اچ پی قرار می دید و از طریق یه فرم اطلاعات رو بهش ارسال می کنید تا کارش رو انجام بده .
اگر کلن برنامه نویسی php و html بلد نباشی خیلی سخت می شه توضیحش ! ولی باید اول فرم رو با html طراحی کنی بعد اطلاعات رو به این کد پست کنی .
کدهای php کاملن سمت سرورن و اگه قرار بود کسی اون ها رو ببینه که طرز کار و الگوریتم تمام سایت هایی که با php نوشته شدن لو می رفت ! ولی برای امنیت بیشتر می شه یوزر پسورد رو روی دیتابیس ذخیره کرد از اونجا خوند . حتا می شه یه الگوریتم رمز نگاری نوشت و اونا رو روی دیتابیس رمز گذاری کرد که دیگه امنیتش بیشتر شه
با سلام با جستجوی زیاد به مطالب مفید شما دست یافتیم
یه سئوال داشتم
من سایت خبری دارم و میخواهم بدانم چطوری میشه از طریق همین کدهایی که شما گفتید اخباری که روی سایت میزاریم تیتر انها به مخاطبین ما به صورت اتوماتیک بدون دخالت ما ارسال شود به گروه هایی که ما میخواهیم
این هم مهم است که سایت ما دات نت است
اگه سایت RSS داشته باشه مشکلی نیست !
می تونی یه کلاس PHP بنویسی هر وقت فید سایت بروز شد عنوان خبر و لینکش به صورت SMS برا شماره های تعریف شده ارسال بشن
با سلام
میشه لطفا آموزش ساخت وب سرویس رو بذارید با soap یا nusoap فرقی نمیکنه
وبسرویس یا api مجموعه ای از یه سری تابع هست که یه ورودی رو دریافت و روش پردازشی انجام می دن و نتیجه رو هم به صورت خروجی می فرستن
برای نوشتن یک api باید اول ببینیم برای چه چیزی می خوایم این کارو کنیم و قراره چه ورودی هایی دریافت و چه خروجی هایی ارسال شه
به چند صورت هم می شه نوشتشون و نمی شه یه حالت تقریبن عمومی براشون در نظر گرفت
اگه ایده ی ساده ای برای وبسرویس دارید که یک عملیات ساده رو انجام بده و به نوعی هم کاربردی باشه خوشحال می شم بگید من یه نمونه می نویسم و توی آزمایشگاه وبلاگم می زارم
سلام سایت بسیار روان و آموزنده ای دارید.
من برای پروژه پایانی طراحی سایت فروش شارژ دارم.از یه شرکت وب سرویس گرفتم ولی الان تو نوشتن کلاینت وب سرویسش موندم.
از طرفی تو php هم تازه کارم و از شرکت کد خواستم، یه نمونه کد دادن که از اونم سر درنمیارم چی به چیه!
فایل pdf راهنما و کد های نمونه ی شرکت و آدرس وب سرویس رو گذاشتم.
در ضمن انگار وب سرویس از IP سایت هایی که براش تعریف میکنند در دسترس هست و نه برای عموم.
ممنون میشم کمکم کنید.کلا گیج شدم. کار لنگه به خدا
دوست عزیز لینکی که دادی رو دیدم
به نظر توضیحات پی دی اف کامله و فکر نمی کنم مشکلی داشت ، اون کدهای php هم که دادی یه نگاه سریع کردم فکر کنم اونها هم مشکلی نداشتن . البته دقیق بررسی نکردم . اگه مشکلی تو اون کدا هست بگو کجاشه که ببینم .
تو کدوم قسمتش می خوای که راهنماییت کنم ؟ چون فکر کنم توی همون pdf همه چی رو گفته و کامل بود راهنماش :/
سلام،ممنون
مشکل اینه که من نمیدونم کدام قسمت کد رو باید تو سایتم بذارم و چجوری.
همش رو با کلاس ها نوشتن.
از طرف دیگه خودم هم نشستم بنویسم مطابق مثالی که شما گفتی، نتونستم.
اگر امکانش هست، قسمت ۱- login رو برای من بنویسید تا مطابق اون بقیه رو ادامه بدم.
طبق همین مثالی که زدم توی خطی که نوشتم $client = new SoapClient(“http://sms.com/webservice.asmx?WSDL”); یعنی وبسرویس رو باز کردم ، توی پی دی اف راهنما آدرس وبسرویس اینه که باید جاگذاری شه : http://elkapos.com:81/ghasedaknetws.asmx?wsdl
وقتی وبسرویس رو باز کردی باید از توابعی که وبسرویس داره استفاده کنی که همش توی همون راهنما هست . مثلن من توی این مثالم ، توی این خط $results = $client->sendsms( $params ); تمام اطلاعاتی که باید به تابع sendsms بفرستم رو می فرستم و گفتم اگه در جواب ، تابع $results->smsresult == ‘success’ رو بگردوند بگه پیام با موفقیت ارسال شد و در غیر اینصورت چیز دیگه ای بنویسه .
الان توی این پی دی اف توضیح داده مثلن تابع Recharge برای شارژ کردنه و مقادیری که باید به این تابع بفرستی اینهاست :
Loginid ( int ) – Tell_Number (string) – Amount ( int ) – Service_Type ( int ) – BrokerId (int32) – B_ExtTrid (long )
یعنی همونطور که من تو مثالم مقادیر username و password و … رو به صورت یه پارامتر به تابع sendsms فرستادم تو هم باید اون مقادیری که تابع نیاز داره رو مشخص کنی و به Recharge بفرستی .
بعد هم گفته اگه تابع مقدار ۱ رو بفرسته ینی با موفقیت عملیات انجام شده و اگه ۰ رو فرستاد ینی خطایی رخ داده .
یعنی باید با یه دستور if مشخص کنی اگه مقدار ۱ برگردونده شد چی بشه و اگه نشد چی بشه .
خیلی راحت می تونی کد کار با این وبسرویس رو بنویسی ، ولی اگه امکانات دیگه می خوای به پروژت اضافه کنی خارج از وبسرویس اون برنامه نویسیش جداست ، رابط کاربری و طراحی صفحه هم که html و css هست و خارج از دستورات وبسرویسه کاملن و به سلیقه خودته
سلام ممنون از راهنماییت، من قبل دیدن سایت تو، همش درگیر XML بودم.فکر میکردم مستقیما با XML باید کار کنم.
خوب من الان به یه error برخورد کردم. فکر میکنم تو تنظیمات باید کاری انجام بدم،وفتی یک شی از SoapClient ایجاد میکنم، اسکریپتم متوقف میشه و error-log سیستم این خطا رو نشون میده:
PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://service.elkapos.com/GhasedakNetWS.asmx?wsdl’
failed to load external entity “http://service.elkapos.com/GhasedakNetWS.asmx?wsdl”
احتمالن روی سرورت soap فعال نیست .
روی لوکال هاست تست کن یا اینکه به پشتیبانی سرورت ایمیل بده ببین soap فعاله یا نه و اگه نبود بگو فعالش کنن
سلان داش جواد
شرکتی که وب سرویس ارائه می داد، آی پی من رو یادشون رفته بود برای سیتمشون مجاز کنند… به همین راحتی ۱ هفته سر کارمون گذاشته بودن.
مشکل حل شد ممنون
سلام. اگه میتونید یه مثال ساده بزنید که توش هم کد سمت client باشه و هم سمت سرور که ۲ تا سایت به هم اطلاعات منتقل کنن.
مثالی که زدید فقط گرفتن خدمات رو نشون میده.
من می خوام بتونم وب سرویسی ایجاد کنم و با یه سایت دیگه بهش وصل بشم.
ممنون از راهنماییتون
وبسرویس کارش ارسال یه چیزی و در ازاش گرفتن چیز دیگست ، این مثالم هم بر همین مبناست .
وقتی اطلاعات رو می فرسته منتظر می مونه تا جواب درخواستشو بگیره و متناسب با اون جوابی که گرفته پیغامی رو نشون می ده یا کاری رو انجام می ده .
دقیقن منظورت رو متوجه نشدم !
راستش من دو تا سایت تو ۲ تا جای مختلف دارم. می خواستم یه درخواست از اولی به دومی بفرستم و دومی از پایگاه دادش یه اطلاعاتی رو برگردونه.
چیزی که شما گذاشته بودید فقط بخش ارسال درخواست بود.
یه سایت پیدا کردم که کار ۲ طرفو توضیح میده. دوستان استفاده کنن.
http://www.sitepoint.com/web-services-with-php-and-soap-1/
فقط باید یه سری کد رو به طرف سرور اضافه کنید (فایل nusoap.php) که از اینجا می تونید بگیرید(توضیحشو همین سایت بالایی داده):
http://sourceforge.net/projects/nusoap
ممنون از سایتتون. حالا اگه کسی بازم سوال داشت اگه بتونم در خدمتم.
مرسی از کامنت خوبت
آموزش خیلی خوبی بود، دمت گرم آقا جواد
آقا میتونی یک کد شبیه کدی که گذاشتی واسه این لینک بهم بدی؟
http://www.asreesfahansms.com/smsSendWebService.asmx?wsdl
آخه با کد شما تست کردم جواب نداد.
این فقط آدرس وبسرویسه ، باید یه راهنمایی چیزی داشته باشه که مقادیر ورودی خروجی رو تعیین کرد ! الان من نمی دونم چه مقادیری رو به اینجا باید بفرستم و چه مقادیری رو دریافت کنم !
اگر در دسترسی به وب سرویس محدودیتی ایجاد نکرده باشند،مثل همین آدرس که شما دادید، راه های زیادی هست.
تو php متد __getFunctions() از کلاس Soap این کار رو برات انجام میده و لیست متد های وب سرویس رو همراه با متغیر های ورودی و خروجی بهت بر میگردونه.
از روی کدهای xml هم به راحتی میشه فهمید به شرطی این که دقت , حوصله کافی داشته باشی.من این کار رو برای یکی از متدهای وب سرویست انجام دادم:
از پایین xml شروع کن بیا بالا ، تو بخش operation میتونی دنبال متدها بگردی مثلا من این متد رو تو خط ۴۳۸ دیدم و انتخاب کردم، اسمش رو میبینی که نوشته: SendSmsUDH
الان تو کد باید دنبال اسم متد بگردی،تو ردیف ۳۶۴ میبینیم که این متد هم متغیر خروجی میده و هم متغیر ورودی میگیره:
الان تو بخش message ها باید دنبال این اسم ها بگردیم:(SendSmsUDHSoapIn،SendSmsUDHSoapOut)
تو فقط دنمبال بخش ورودی متغیر گشتم و تو خط ۲۸۵ قسمت تعریف ورودی متد رو پیدا کردیم،میبینیم که نوشته پارامترس و بعدش المنت:
الان تو بخش element دنبال المنت SendSmsUDH میگردیم،تو خط ۷۵ پیداش کردیم،لیست مقادیر ورودی رو برای این متد پیدا کردیم،که ۶ تاست و اسم و نوع مقادیر رو برامون نوشته، البته چون داخل تگ هست یعنی همه ی داده ها ساده نیستند جز سومی که type=string هست، برای داده های که نوعشون صریحا مشخصا نشده مثل SendTypeدوباره با استفاده از اسمی که جلوی type نوشته جستجو انجام میدیم و نوع تعریفش رو پیدا میکنیم.
البته این کارها زمانی مفیده که واقعا هیچ دسترسی و راهنمایی به وب سرویس نداشته باشیم یا بخواهیم چیزهای اضافه تری در مورد وب سرویس بدونیم.
ممنون از پاسختان!
پیدا کردم آقا، گفتم شاید بشه از روی فرمت XML درش آورد.
ممنون
سلام
بسیار عالی….متشکر :*
سلام
ببخشید یه سوال:
چطور میتونم یک پیام برای مثلا صد شماره ارسال کنیم الان ما برای شماره ها از ارایه زیر استفاده میکنیم:
$parameters[‘to’] = array(‘0’ => “$mobile”,’1’=>”$mobile”);
میخوام مثلا لیست صد کاربر رو از دیتابیس بگیره و تو ارایه زیر قرار بده .گرفتن شماره ها رو از دیتابیس بلد هستم فقط نمیدونم چطور باید تو این قرار بدم
ممنون میشم راهنمایی کنید.
خب اطلاعات رو که از دیتابیس می گیری توی یه آرایه قرار بده و به این تابع بفرست ، کار سختی نیست که :/
توی این همه سایت یه آموزش، کاربردی تر از آموزش شما ندیده بودم.
واقعا عالی بود و ممنونم
سایت خیلی خوبی دارین موفق باشین
خیلی عالی و مفید بود
سایت خوبی دارید
ممنونم
چاپ سررسید
سه شنبه ۳۰ خرداد ۱۳۹۱ و ساعت ۹:۰۰ ب.ظ
سلام . ممنون از مطلب خوبتون.
عالی بود.
فقط میشه آموزش اینکه چطور با soap به وبسرویس متصل بشم را بگید ؟
خیلی گشتم ولی چیزی نفهمیدم….
لطفا به آدرس ایمیلم بفرستید
ممنون
چهارشنبه ۳۱ خرداد ۱۳۹۱ و ساعت ۱۲:۰۷ ق.ظ
دقیقن این روشی که گفتم برای soap بود و سرورهایی که soap فعال دارن ! اگه سروری nusoap باشه نیاز به کتابخونه ها soap داره که می تونید از اینجا دانلود کنید : http://sourceforge.net/projects/nusoap