تابع split در php

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

تابع split در php

تابع split در php از نسخه ۵٫۳٫۰ بعد جز توابع منسوخ معرفی شد و در نسخه php 7.0.0 به طور کامل حذف شد . این تابع برای شکستن یک رشته از هم بر اساس یک الگوی regex یا همان عبارت های باقاعده به یک آرایه استفاده می شد . تابع split رشته ها را با حساسیت نسبت به حروف کوچک و بزرگ با الگوی مشخص شده به اجزای مختلف تقسیم می کرد .

بنابراین , این گونه از تجزیه رشته با الگو با راندمان بسیار ضعیفی روبرو بود . به همین دلیل تابع split از php حذف شد .

کد php زیر به شما یک مثال برای تابع split() با الگوی [- :] بر روی رشته مورد نظر را نشان می دهد .(بله متوجهم با عبارت باقاعده ای که می شناختیم متفاوت است !)

تابع split با الگوی POSIX regex سازگار بود اما در نسخه ۵٫۳٫۰ با PCRE (PERL Compatible Expression) جایگزین شد. بنابراین , اگر از این تابع در نسخه های بالاتر از ۵٫۳٫۰ استفاده کنیم با خطای E_DEPRECATED که یک warning notice است , مواجه خواهیم شد .

برای آشنایی با انواع خطاها در php کلیک کنید توابع جایگزینی برای جدا کردن یک رشته به آرایه وجود دارد . این توابع عبارت اند از preg_split() , str_split() و تابع explode() . کد php زیر به شما نحوه استفاده از تابع preg_split() برای جداسازی یک رشته تاریخ با استفاده از الگوی regex را نشان می دهد .

تابع split در php

خیلی خوب است که فرق بین POSIX و PCRE را در استفاده از regex (عبارت های باقاعده) را بدانیم . این موارد در زیر لیست شده اند

  1. توابع PCRE مثل preg_split() , preg_match() و preg_replace , الگوهای تعریف شده در آن ها باید در یک خط مورد (slash / ) باز و بسته قرار بگیرند
  2. در POSIX , توابعی که به حروف کوچک و بزرگ حساس هستند و نیستند به دو تابع مختلف تقسیم می شوند . مثل split() و spliti() . POSIX توابع متفاوتی برای هر دو مورد case-insensitive و case-sensitive دارد . اما مثلا در تابع preg_split() ما باید الگو را به صورت حساس به حروف کوچک و بزرگ تعریف کنیم .
  3. POSIX , به دنبال طولانی ترین مورد تطبیقی با الگوی داده شده در رشته مورد نظر می گردد . اما PCRE حتی کوچکترین رشته تطابق یافته با الگو را موثر می داند و بسیار سرعت آن بالاست .

جداسازی رشته با تابع explode در php

با تابع explode که در مقاله زیر هم در مورد آن مفصل صحبت کردیم , می توانیم از رشته به جای الگوی عبارت با قاعده برای جداسازی یک رشته و قرار دادن آن ها در یک آرایه استفاده کنیم. بنابراین نیاز به هیچ یک از POSIX یا PCRE ها در هنگام اجرای تابع explode نداریم . به همین دلیل این تابع بسیار سریع تر از هر دو تابع split() و preg_split() است .

کد php زیر به شما نحوه جدا سازی یک رشته بر اساس فاصله (space) با تابع explode() را نشان می دهد.

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

توابع کار با رشته ها همانصور که در مقالات قبل هم گفتم تعداد بسیاری زیادی از توابع زبان برنامه نویسی php را تشکیل می دهند و همانطور که دیدید بسیار بسیار می تواند کاربردی و مهم باشند

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

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

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

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

  1. آرش ۱۴ مرداد ۱۳۹۹

    سلام ، خیلی ممنون از آموزش هایی که در سایت قرار میدهید

    سوالی داشتم، آیا میشه از این راه استفاده کرد تا در تلگرام بعد از دریافت یک لینک و تکست برای مثال ( گوگل – http://www.google.com ) لینک و تکست را از هم جدا کرد و در جاهای مختلف و یا بصورت یک کلید شیشه ای استفاده کرد ؟؟؟

    تشکر

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

      سلام. خوشحالیم که مفید واقع شده.
      بله میتونید استفاده کنید و مثل توابع explode,implode این تابع هم بسیار پرکاربرد هست

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