ساخت ادیتور آنلاین کد در PHP

  • آپدیت شده در تاریخ

ساخت ادیتور آنلاین کد در PHP

ادیتورهای آنلاین مزیت های جالبی مثل, پیش نمایش زنده نتیجه کد و سادگی را در اختیار ما قرار می دهند. نوشتن آنلاین کدها در مرورگر وب و اجرای آن, یک تجربه عالی را ایجاد می کنند.

استفاده از ادیتور آنلاین کد تاحد زیادی تلاش ما را برای دانلود و نصب نرم افزار (xampp,wamp,..) به منظور راه اندازی محیط لوکال برای اجرای کدها را کاهش می دهد. همچنین برای عیب یابی تکه کدها بصورت مستقیم بسیار مفید خواهد بود.

 

در این مقاله آموزشی, یک ادیتور آنلاین کد را برای اجرای اسکریپت های PHP را ایجاد می کنیم. من از API سرویس CodeMirror برای ساخت UI به منظور نوشتن و ویرایش آنلاین کد استفاده می کنم.

CodeMirror یکی از کتابخانه های محبوب و پراستفاده جاوااسکریپت برای ساخت ویرایشگر آنلاین کد است.

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

نکته: این مثال بطوری طراحی شده است که شما می تونید از آن برای استفاده شخصی بر روی محیط لوکال بهره ببرید.

 

در مثال ساخت ادیتور آنلاین کد در PHP , یک ویرایشگر نمایش داده می شود.در ابتدا این ایدیتور با یک اسکریپت ساده Hello World بارگذاری می شود.

این کد در پنجره ادیتور قابل ویرایش است و اکشن Run کد فعلی را از ادیتور دریافت می کند.همچنین می توانیم با کلیک روی Clear و Refresh پنجره ویرایشگر را پاک و از نو لود کنیم.عملیات Run, Refresh, Clear با استفاده از Ajax در jQuery انجام می شوند.

 

تبدیل Html Textarea به ویرایشگر کد آنلاین

این کد HTML برای نمایش صفحه فرود مربوط به ویرایشگر آنلاین کد استفاده شده است.

CodeMirror را دانلود و فایل های لازم را به صفحه HTML اضافه کنید.

با اضافه کردن این کتابخانه, یک فرم HTML با المنت textarea می تواند به یک پنجره ویرایشگر کد تبدیل شود.

کد تایپ شده در این پنجره ادیتور می توانید بر اساس نوع زبان برنامه نویسی انتخاب شده به شکل های مختلف نمایش داده شود.

برای هر mode , کتابخانه فایل های جاوااسکریپت جدا را فراخوانی می کند. در این مثال, فایل های جاوااسکریپت استفاده شد برای زبان هایی مثل PHP,css,XML و غیره را می بینید.

با کلیک روی دکمه Run , کد داخل ویرایشگر با اسکریپت jQuery اعتبارسنجی و در سمت سرور اجرا می شود و در نهایت نتیجه در زیر ادیتور نمایش داده می شود.

این کد javascript برای اجرای CodeMirror با یک سری از گزینه های مشخص شده برای تبدیل المنت textarea به یک ویرایشگر کد استفاده شده است.

اجرای کد با ادیتور آنلاین توسط jQuery Ajax

در ابتدا, نمونه ادیتور با تنظیمات مشخص شده توسط توابع کتابخانه ساخته می شود. با کلیک ر.ی دکمه Run , کد تایپ شده با تابع getValue() خوانده می شود. این کد توسط درخواست AJAX به فایل PHP ارسال و در یک فایل سمت سرور رایت می شود.

بعد از قرار دادن کد موجود در ادیتور در یک فایل php به نام مثلا code-editable.php , یک درخواست دیگر AJAX در تابع بازگشتی complete() ارسال می شود.

در دومین درخواست AJAX , فایل code-editable.php در دسترس خواهد بود. با اجرای کدهای موجود در این فایل, خروجی مورد انتظار به عنوان پاسخ ajax در فرمت HTML برگشت داده می شود.

با کلیک روی دکمه Clear , کدهای نوشته شده در ادیتور پاک می شود. با کلیک روی دکمه Refresh نیز عملیات reload نیز برای لود ادیتور با اسکریپت اولیه Hello World اجرا می شود.

اسکریپت PHP برای قراردادن کدها در یک فایل داینامیک

در این اسکریپت PHP , کد موجود در ادیتور توسط درخواست  AJAX دریافت می شود. سپس محتویات کد در یک فایل قرار داده می شود.

توابع فایل در PHP برای ساخت اشاره گر (pointer) به منظور نوشتن کدها داخل آن استفاده می شود. بعد از قرارا دادن کد داخل فایل, اشاره گر فایل نیز بسته می شود.

زمانی که این مثال را روی محیط لوکال اجرا می کنید, مطمین باشید که فایل code-editable.php پرمیشن write را داشته باشد (برای لینوکس)

خروجی ساخت ادیتور آنلاین کد در PHP

اسکرین شات زیر به شما ادیتور کد که شامل کد PHP برای دیافت نوع داده متغیر استفاده شده است را نشان می دهد.

ساخت ادیتور آنلاین کد در PHP

امیدوارم از آموزش ساخت ادیتور آنلاین کد در PHP نهایت استفاده را برده باشید.

برای دانلود سورس کد کامل این آموزش از باکس دانلود استفاده کنید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
دیدگاه کاربران (۲۰)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. حیدر ۱۹ شهریور ۱۴۰۰

    سلام خدمت حسن شفیعی
    من فایل رو تو هاست گذاشتم چرا نه دکمه ها وقتی کلیک میکنم هیچی نمیشه و نه مثل عکس بالا میشه میشه راهنمایی کنید
    با تشکر

    پاسخ
    1. حسن شفیعی ۲۰ شهریور ۱۴۰۰

      سلام.
      داخل مرورگر f12 بزنید و بخش کنسول ببینید چه خطایی دارید

      پاسخ
  2. رضا ۲۸ فروردین ۱۴۰۰

    با سلام۱
    خداقوت! بنده یه سوال داشتم من وقتی ویرایش گر رو باز میکنم یک کد PHP برای چاپ عبارت Hello world نوشته شد اما من میخوام کدی که توی اون فایل هست بیاد جای این عبارت خودم با چند کد کاری کردم که بشه این ادیتور رو در هر فایلی استفاده کرد و فقط کد رو ذخیره میکنه اما نمیشه اون کد را دید تا ویرایشش کرد فقط هر چی مینویسی جایگزین اون میشه!
    من یه راهی پیدا کردم که بریم در فایل editor-action.js و در خط ۱۱ به جای Hello world کدی در فایل file-write.php اضافه کنیم مثل $show = fopen($page[0], “r”) or die(“Unable to open file!”); و بعد متغیر show رو پاس بدید به اون فایل جاوااسکریپت اما من نمیدونم چطور میشه پاس داد از php به js لطا راهنمایی کنید!

    پاسخ
    1. حسن شفیعی ۲۹ فروردین ۱۴۰۰

      سلام. از ajax استفاده کنید
      https://netparadis.com/php-ajax-programming

      پاسخ
  3. علی ۲۵ فروردین ۱۴۰۰

    با سلام!
    ببخشید ولی هیچ کدوم از فایل های css در فایلی که برای دانلود گذاشتید نیست و من وقتی دانلود کردم کد به درستی کار نمیکرد و هیچ فایلی تحت عنوان css در فایل دانلودی نیست!

    پاسخ
    1. حسن شفیعی ۲۵ فروردین ۱۴۰۰

      سلام. از این لینک که در پست آموزشی هم گفته شده باید کتابحانه مورد نظر رو دانلود و به پروژه اضافه کنید :
      https://codemirror.net

      پاسخ
  4. رضا ۱۶ فروردین ۱۴۰۰

    با سلام!
    من دوست دارم ویرایشگری مثل ویرایش گر وردپرس داشته باشم برای ویرایش سورس فایل های سایت لازم دارم مثل ویرایشگر وردپرس شما چیزی رو مد نظر ندارید؟

    پاسخ
    1. حسن شفیعی ۱۶ فروردین ۱۴۰۰

      سلام.
      از این کتابخانه میتونید استفاده کنید :
      https://github.com/tinymce/tinymce

      پاسخ
  5. محمد ۱۹ تیر ۱۳۹۹

    سلام
    من یه سایت آموزش برنامه نویسی دارم و میخوام وقتی کاربر آموزشو میخونه در همون حال کداشو تو ادیتور آنلاین تست کنه
    چطور باید این کد شما رو تو سایت استفاده کنم؟
    تقریبا میخوام یه محیطی شبیه سایت w3schools بوجود بیارم

    پاسخ
    1. حسن شفیعی ۲۰ تیر ۱۳۹۹

      سلام.
      از این اسکریپت استفاده کنید :
      https://github.com/codemirror/CodeMirror
      موفق باشید.

      پاسخ
  6. reza ۱۰ تیر ۱۳۹۸

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

    پاسخ
    1. حسن شفیعی ۱۰ تیر ۱۳۹۸

      سلام ممنون.
      خب شما باید مقدار یا کد پیش فرض خودتون رو داخلش قرار بدید :

      در بخش اجرای کد با ادیتور آنلاین توسط jQuery Ajax و خط ۱۲ داخل متد setValue باید کدهای خودتون رو لحاظ کنید
      موفق باشید.

      پاسخ
      1. reza ۱۰ تیر ۱۳۹۸

        سلام با تشکر از پاسخ جنابعالی یعنی این سایت برای تمام فایل ها اینکار رو تکرار کرده ؟
        https://www.tutorialspoint.com/php/php_loop_types.htm

        پاسخ
      2. حسن شفیعی ۱۰ تیر ۱۳۹۸

        سلام. از این سایت اطلاعی ندارم و سیستمشون مطیمنا اختصاصی هست.

        پاسخ
      3. reza ۱۰ تیر ۱۳۹۸

        زنده باشی مهندس فقط جهت اطلاع البته من با لوکال تست نکردم
        خط ۱۲ داخل متد setValue
        اصلا شماکامل حذف هم کنی بازم ادیتور رفرش کنی Hello World هست از کدوم فایل فراخانی میشه من پیدا نکردم دستت درد نکنه اگه مشکل رو حل کنی ممنون میشم

        پاسخ
      4. حسن شفیعی ۱۰ تیر ۱۳۹۸

        شرمنده. کد نمونه داخل فایل code-editable.php هست که میتونید تغییر بدید :

        موفق باشید.

        پاسخ
  7. reza ۴ فروردین ۱۳۹۸

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

    پاسخ
    1. حسن شفیعی ۴ فروردین ۱۳۹۸

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

      پاسخ
      1. محمد ۱۹ آبان ۱۳۹۹

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

        پاسخ
      2. حسن شفیعی ۱۹ آبان ۱۳۹۹

        سلام ممنون.
        کل فایل ها را باید داخل فولدر قالب یا یک پلاگین تعریف کنید و داخل اون قرار بدید و بعد استفاده کنید.
        در واقع باید لینک بدید به code-editable.php که در وردپرس باید داخل functions.php تعریف کنید تا بتونید هر جای سایت استفاده کنید.
        که البته باید کمی با ساختار وردپرس آشنا باشید وگرنه این کار وقت زیادی از شما میگیره و شاید هم نتونید نتیجه ای که میخواید بگیرید.
        موفق باشید

        پاسخ
دوره های آموزشی