کاربردهای CURL در پی‌اچ‌پی

کتابخانه لینوکسی و پرقدرت curl کاربردهای متعددی برای کار با پروتکل‌های مختلف دارد. به وسیله آن می‌توان یک ربات انسان‌نما درست کرد که به گشت و گذار در وب می‌پردازد و فرم‌ها(ی فاقد کپچا) را پر می‌کند. می‌تواند اطلاعات و حتی فایل‌ها را به مقصد دلخواه post کند و یا با روش ftp به یک سرور وصل شود و در فایل‌ها تغییرات دلخواه را انجام دهد و …

در زبان محبوب php امکان استفاده از curl به سادگی درون برنامه وجود دارد. مثلا برای ارسال اطلاعات به روش post به یک سرور می‌توان اینگونه عمل کرد:

با استفاده از سرویس آنلاین hurl می‌توانید به صورت ویژوال، پارامترهای cUrl را ست و سپس آن را اجرا کنید و نتیجه را مشاهده نمایید که برای یادگیری و درک curl مفید است.

برای کار کردن با curl کتابخانه‌های متعدد php وجود دارد که کار را بسیار ساده کرده است از جمله:

  • Goutte
    یک کتابخانه جهت گرفتن (grab) صفحات وب که با کمک آن می‌توان برخی اعمال ساده (مثل کلیک روی لینک و ثبت فرم و …) را نیز انجام داد. همچنین با کمک این کتابخانه به سادگی می‌توان بر اساس انتخابگرهای css3 به عناصر و بخش‌های html دریافت شده دسترسی پیدا کرد.
  • Unirest-PHP
    یک کتابخانه ساده دیگر برای راحتی کار با curl جهت دریافت و ارسال اطلاعات و حتی فایل.
  • Requests
    یک کتابخانه مفید و قدرتمند برای ارسال درخواست از طریق curl یا fsockopen (با توجه به در دسترس بودن) برای ارسال انواع درخواست‌های HEAD, GET, POST, PUT, DELETE و PATCH با قابلیت افزودن فایل و …
  • Guzzle
    این کتابخانه پرطرفدار و محبوب، می‌تواند انواع درخواست‌های http را به صورت سریالی و موازی ارسال کند. این کتابخانه به صورت پیش‌فرض از cUrl استفاده می‌کند اما لزوما به آن نیاز ندارد.
    همچنین این کتابخانه قدرتمند امکان دانلود و آپلود استریم را نیز دارد. کار با Keep-Alive و connection pooling (مثلا برای کار با سرورهای node.js) نیز یکی دیگر از قابلیت‌های آن است.

نکته: کتابخانه HttpRequest که در نسخ جدید PHP و همراه آن ارائه شده، کار با CURL را بسیار ساده کرده است که توصیه می‌کنم به قابلیت‌های HttpRequest نگاه کنید…


آموزش ساخت اپلیکیشن‌های کلاینتی با AngularJS گوگل

با گسترش وسایل لمسی، اپلیکیشن‌های آن نیز موردتوجه قرار گرفته است. اغلب اپلیکیشن‌ها، با کمک html+js قابل پیاده‌سازی هستند و به صورت صفحات HTML می‌توانند تولید و سپس به اپ تبدیل شوند که قبلا توضیح دادم.

از سویی بسیاری از سایت‌هایی که مبتنی بر ارائه گستره وسیع اطلاعات هستند، دارای یک اسکلت مشخص هستند و تنها اطلاعات آن تغییر می‌کند.

دو عامل فوق باعث شده که فریم‌ورک‌های جاوا اسکریپتی مبتنی بر الگوی MVC (که در آن داده‌ها و تمپلت از کنترلر مستقل هستند) در سال‌های اخیر رشد زیادی کنند که فریم‌ورک‌های Angular, Ember, Backbone, knockout چهار نمونه معروف از آنها هستند که البته رغبت جهانی به سمت AngularJS بوده و به شدت در حال رشد است.

angular-ember-backbone-knockout

به اینگونه برنامه‌ها (که دارای یک اسکلت ساده یا تک‌صفحه‌ای هستند)، Single Page Application یا SPA گفته می‌شود.

AngularJS توسط شرکت Google ایجاد شده و به دلیل قدرتش بسیار هم مورد رغبت برنامه‌نویسان قرار گرفته، لذا تمرکز اصلی مطلب فعلی نیز روی آن است.

مزایا و معایب استفاده از این فریم‌ورک‌ها برای ما برنامه نویسان چیست؟

تسریع در پیاده‌سازی پروژه برنامه‌نویسی، یکی از دلایل استفاده از انگولر جی‌اس بین برنامه‌نویسان است اما برای دارندگان یک سایت (خصوصا پربازدید) مهم‌ترین حسن استفاده از اینگونه فریم‌ورک‌ها؛ صرفه‌جویی در منابع سرور است که موجب می‌شود سرور بتواند به افراد بیشتری پاسخگو باشد.
توضیح بیشتر آنکه؛ بخشی از پردازنده سرور صرف قرار دادن اطلاعات (Data) در قالب (Template) می‌شود و نهایتا سورس کامل html صفحه به سمت کاربر ارسال می‌شود.
اما در صورت استفاده از AngularJS و امثال آن، قالب (Template) یکبار لود می‌شود و بعد از آن فقط دیتا رد و بدل می‌شود. درست مانند محیط جیمیل. این کار بار پردازشی سرور را کاهش می‌دهد و آن را روی دوش کلاینت می‌اندازد. همچنین پهنای باند مصرفی سرور و کاربر را به شدت کاهش می‌دهد در نتیجه کاربر احساس می‌کند برنامه با سرعت بسیار بیشتری کار می‌کند.
شاید تصور کنید که AngularJS همان Ajax است! اما خیر؛
AngularJS یک فریم‌ورک مبتنی بر MVC است که از Ajax نیز استفاده کرده است. AngularJS موجب کاهش مقدار کدنویسی (و در نتیجه افزایش سرعت تولید برنامه‌ها) شده است.

و اما معایب آن: برای کلاینت که اشکالی ندارد و بلکه به دلیل کاهش پهنای باند مصرفی، کاملا به نفع کاربر هم هست اما برای برنامه‌نویسان و دارندگان یک سایت چطور؟

شاید بتوان گفت که مهم‌ترین اشکال سپردن Template Engine به کلاینت (جاوا اسکریپت)، مساله SEO است. این امر باعث میشود که AngularJS برای برنامه‌هایی مفید باشد که مساله SEO برای‌شان مهم یا اصلا مطرح نیست! مثل اپلیکیشن‌های موبایلی یا سایت‌هایی که برای یک یا چند کاربر محدود قرار است نمایش داده شود (مثل همین جیمیل یا یک برنامه درون سازمانی که فقط افراد معدودی قرار است به آن دسترسی داشته باشند نه search engine ها!).

آیا برای حل مشکل SEO ی AngularJS راه حلی وجود دارد؟

بله اما کمی سختی دارد!

از سال‌ها قبل، مشکل موتورهای جستجو با محتویاتی که Ajax ی لود می‌شود، مطرح بود و راه‌حل‌هایی برای آن مطرح شد از جمله خود گوگل در این صفحه راه حل خودش را توضیح داده که از سوی بسیاری از برنامه‌نویسان پذیرفته شده و مبنای کار قرار گرفته است. این مقاله جدید نمونه کد و تنظیمات لازم برای کاربرد عملی آن را نشان می‌دهد. (هرچند راه حل اصلی همان است که گوگل در پی آن است؛ اجرای سایت به صورت یک کاربر واقعی و سپس ذخیره اطلاعات نمایش داده شده. این کار هم مشکل محتویات js ی را حل می‌کند و هم مانع ایندکس شدن محتویات اسپم می‌شود).

البته تکنیک‌های دیگری نیز وجود دارد مثل شناسایی موتورهای جستجو و نمایش محتوای خاص به آنها و … . مقاله AngularJS and SEO جزو بهترین مقالات آموزشی در این زمینه است. پروژه Prerender.io نیز برای تسهیل این کار با نصب برنامه خاص روی سرور اقدام کرده است که قابل تقدیر است.

[آپدیت]: همانطور که گوگل در این مطلب گفته، از این به بعد گوگل جاوا اسکریپت را می‌فهمد! لذا لازم نیست برای سئوی انگولرجی‌اس هیچ کار اضافه‌ای انجام دهید 🙂
سایت Search Engine Land هم که یک سایت تخصصی سئو است، این قابلیت گوگل را در عمل تست کرده و نتیجه را در این مطلب ارائه کرده است. همانطور که می‌بینید، موتور ایندکس گوگل به خوبی تغییرات حتی متاتگ‌های مرتبط با سئو همچون title, description, canonical را تشخیص و ایندکس کرده است.

آیا برای هر سایتی مناسب است که از AngularJS استفاده کنیم؟

خیر!
AngularJS برای سایت‌ها و اپ‌های اطلاعاتی (که اطلاعات مختلف را حسب نیاز کاربر نمایش می‌دهند) مناسب است اما اگر برنامه شما عمدتا کارش بازی با DOM است، کتابخانه دیگری مثل jQuery مناسب‌تر است یا مثلا اگر برنامه شما مربوط به یک game است، باز هم کتابخانه‌های مختص این کار را باید استفاده کنید و انگولر جی‌اس کمک چندانی در این زمینه نمی‌تواند بکند.

سمت سرور یک برنامه انگولری

انگولر یک کتابخانه جاوا اسکریپتی برای سمت کلاینت است اما در برنامه‌های اطلاعاتی واقعی، تعاملات زیادی هم با سمت سرور دارد. سمت سرور می‌تواند از زبان‌های برنامه نویسی دلخواه (مثلا PHP) و سیستم پایگاه داده دلخواه (مثلا MySQL) استفاده کند.

اما در صورتی که شما سمت سرور را تنها برای عملیات احراز هویت (Login) و کار با اطلاعات (CRUD) نیاز دارید، می‌توانید از سرویس بسیار عالی FireBase استفاده کنید که اخیرا توسط گوگل خریداری شده است.

کار با این سرویس بسیار ساده و لذت‌بخش است که برای شروع می‌توانید از مقالاتی که در این زمینه هست (مثل این) استفاده کنید. تنها نکته ماجرا اینجاست که استفاده از این سرویس برای استفاده محدود، رایگان است و در صورتی که شما بخواهید در یک برنامه پربازدید از آن استفاده کنید، لازم است از طرح‌های غیررایگان آن استفاده کنید.

چند لینک مفید درباره AngularJS


چرا بهتر است برای انجام پروژه های خود از persianvl استفاده کنیم

امروزه با بزرگ تر شدن دامنه کسب و کارها در اینترنت ،فریلنسرینگ به یکی از بهترین کسب و کار ها در بسیاری از نقاط جهان تبدیل شده است.در ایران نیز سایت ها و شرکت های متعددی در این زمینه فعالیت میکنند که هرکدام دارای خصوصیت های خود می باشند.persianvl نیز برای این منظور امکاناتی را فراهم نموده است تا شما بتوانید پروژه های خود را که مایلید به صورت راه دور انجام دهید در این سایت معرفی کرده و یا در انجام دادن پروژه ها شرکت نمایید.

چرا بهتر است از persianvl استفاده نماییم ؟

ما در رشد بهتر و سریعتر به شما کمک میکنیم.به کمک ما میتوانید هزینه ها را زمانی بپردازید که کار به صورت کامل انجام شد و در اختیار شما قرار گرفت.در سایت فریلنسرینگ persianvl شما میتوانید کارتان را در معرض بازدید نیروهای متخصص و فراوان ما قرار دهید و از بین آنها بهترین هزینه و زمان ممکن برای انجام کارتان را انتخاب نمایید.به این ترتیب از هزینه های جاری خود کاسته و دیگر نیازی به دادن مالیات،بیمه کردن افراد و تامین نیروی انسانی و هزینه های ناشی از آن را ندارید.

چه افراد و شرکت هایی میتوانند از خدمات ما استفاده کنند ؟

در واقع هیچ محدودیتی برای استفاده از خدمات ما وجود ندارد.همه افراد و شرکت هایی که مایل به ایجاد یک استارت آپ قوی و مطمئن هستند میتوانند عضو سایت شده و از آن استفافده کنند.تمامی افراد با هرگونه سن و جنسیت ،شرکت های کوچه و بزرگ و …ما به شما در پایین آوردن هزینه هایتان کمک خواهیم کرد.

اما یک سایت فریلنسر واسطه چه مزایایی دارد ؟

سایت persianvl برای کارفرما (فردی که پروژه را ثبت و معرفی میکند و درخواست کننده انجام کار است ) و برای پیمان کار (افرادی که میخواهند تا کار را انجام دهند) امکاناتی را در نظر گرفته که می تواند به بهتر انجام شدن یک قرارداد کمک کند.ما دارای مجوز های قانونی از نهادهای دولتی و همچنین وزارت فرهنگ و ارشاد اسلامی هستیم.کلیه مجوز ها به همراه شماره پیمان آنها در صفحه نخست سایت قرار داده شده است.

همچنین در سایت ما به واسطه بخش هایی مانند قرارداد محضری و مجازی ،سیستم پرداخت ضرر و زیان و … شرایطی فراهم شده است تا کارها به بهترین شکل ممکن انجام شوند .کنترل مرتب کاربران و پروژه و پیگیری پیشرفت آنها همچنین یکی دیگر از خدماتی است که ما برای کار شما انجام میدهیم .

هزینه ها  و تضمین های مالی نزد سایت به امانت میماند و در صورت به نتیجه رسیدن کار و اتمام پروژه ،هزینه پرداختی به پیمان کار پروژه با کسر پورسانت سایت واریز خواهد شد.بنابراین در طول انجام کار هیچ کدام از طرفین قرارداد هیچ نگرانی مبنی بر انجام نشدن کار و تحویل نگرفتن پروژه خود را نخواهند داشت.

چه کارهایی برای اطمینان خاطر کارفرما انجام داده می شود ؟

اگر شما بخواهید پروژه ای را به فردی واگذار نمایید تا برای شما انجام دهد ،مهمترین چالش پیش روی شما این است که آیا این فرد میتواند کار من را انجام دهد یا خیر ؟اگر نتواند در زمان مورد نظر کار مرا انجام دهد چه ؟

ما در persianvl شرایط مهیا کرده ایم تا شما برای پروژه خود مبلغی را به عنوان ضمانت انجام کار مشخص نمایید.این مبلغ را پیمان کار نه شما ! به حساب سایت واریز میکند و اگر کاربر نتواند پروژه شما را در زمان مشخص شده انجام دهد ،این هزینه به عنوان ضرر و زیان ناشی از انجام نشدن کار به حساب شما واریز می شود.

این ویژگی باعث می شود تا کاربرانی که توانایی لازم در انجام پروژه را ندارند و یا مسئولیت پذیر نیستند،از همان ایتدا در مناقصه شما شرکت نکنند.

همچنین ما بخشی به عنوان قراداد محضری و یا مجازی هم داریم.در قرارداد محضری ما به عنوان واسطه و به نمایندگی از شما یک قرارداد رسمی محضری بین شما و پیمان کار ایجاد خواهیم کرد و اصل قرارداد را برای شما ارسال میکنیم.بنابراین در انتهای زمان بندی پروژه و یا در طول آن اگر پیمان کار هر گونه تخطی از وظایف محوله را انجام دهد شما میتوانید بنا به تصمیم خود و مفاد قرارداد اقدام نمایید.

ضمنا هزینه انجام پروژه تا زمان کامل نشدن کار به حساب پیمان کار واریز نخواهد شد !

چه اقداماتی برای اطمینان خاطر پیمان کاران انجام میشود ؟

بودجه پروژه همان طور که شما و کارفرمای پروژه توافق کرده اید در نزد سایت به امانت باقی میماند و در زمان اتمام پروژه به حساب شما واریز می شود.بنابراین شما هیچ گونه نگرانی از بابت پرداخت نشدن هزینه پروژه را نخواهید داشت.همچنین با انجام پروژه های مختلف در سایت ما میتوانید به قوی تر شدن ما و بزرگتر شدن کسب و کار خود به عنوان یک فریلسنر کمک نمایید.

تمامی خدمات ما به غیر از ایجاد پروژه جدید و افزایش رتبه کاربران رایگان است و هیچ گونه هزینه اظافی دیگری از شما دریافت نمی شود.هزینه ایجاد پروزه جدید و افزایش سطح کاربری تنها ۵۰۰۰۰ ریال می باشد.البته با اجرای کد تخفیف موجود در بخش کاربری این مقدار به نصف کاهش می یابد!

دقت فرمایید هزینه های نگه داری و برپایی سرویس ها ما تنها از همین راه تامین می شود و این در مقابل امکاناتی که در اختیار شما قرار میگیرد بسیار ناچیز می باشد.

 


آموزش مرحله به مرحله طراحی وب _جلسه اول(طراحی صفحات و سایتهای اینترنتی)

یک سایت می تواند نقش یک بروشور تبلیغاتی را برای شما بازی کند حتی با امکاناتی بسیار بیشتر از یک بروشور ساده. شما با استفاده از یک سایت اینترنتی می توانید به راحتی محصولات خود را به بازدید کنندگان خود معرفی کنید، آنها را از آخرین تغییرات مطلع کنید، اطلاعات مورد نیاز آنها را در اختیارشان قرار دهید و یا حتی نظرات و پیشنهادات آنها را جمع آوری کنید. حتی می توان با ایجاد یک انجمن گفتگو در سایت به سایرین اجازه داد نظرات خود را اعلام کنند و به نظرات دیگران پاسخ دهند.

 

از یک سایت اینترنتی می توان برای ایجاد ارتباط مؤثر میان اعضای یک سازمان هم استفاده کرد به صورتی که هر یک از اعضا در هر جا که باشند بتوانند به اطلاعات مورد نیاز خود از طریق سایت سازمان دسترسی پیدا کنند، از آخرین اخبار مطلع شوند و آخرین تغییرات را مشاهده کنند.

 

در حقیقت می توان از یک سایت اینترنتی به عنوان بخش مهمی از سیستم اطلاعاتی داخل سازمان استفاده کرد و هر گروه از افراد به اطلاعات مربوط به سطح سازمانی خود دسترسی داشته باشند. یعنی اطلاعاتی که کارمندان از سایت دریافت می کنند متفاوت با اطلاعات مدیران و همچنین متفاوت با اطلاعاتی باشد که بازدید کنندگان خارج سازمان از سایت دریافت می کنند.

ادامه خواندن “آموزش مرحله به مرحله طراحی وب _جلسه اول(طراحی صفحات و سایتهای اینترنتی)”