رشته PHP توابع رشته ترمیم. رشته پی اچ پی را بریزید: راه های ساده

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

معمولا هنگام برش یک رشته بر روی پی اچ پی عنصر HTML طرح محدودیتی در تعداد کاراکترهای قابل مشاهده است، اما این یک کار خصوصی است.

تصمیم سنتی

یکی از محبوب ترین و اغلب استفاده شده از ویژگی های Substr () است. دو یا سه پارامتر به آن منتقل می شوند:

  • خط منبع؛
  • موقعیت شروع ($ IPOs)؛
  • طول بستر برش ($ ایلن).

آخرین پارامتر را نمی توان نشان داد. اگر تنها دو پارامتر مشخص شده باشد: نتیجه Substr () یک زیرزمینی، از موقعیت شروع ($ IPOs) به پایان خط منبع خواهد بود. اگر سه پارامتر انتقال داده شود، سپس رشته پی اچ پی را از موقعیت شروع ($ IPOs) به طول مشخص شده ($ ایلن) برش دهید.

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

تابع ویژه

وظیفه "برش خط" پی اچ پی (به معنای وسیع) در متن: در هر دو طرف. از لحاظ تاریخی، این تابع TRIM () است که قصد دارد کاراکترهای ناچیز را حذف کند:

  • شکاف؛
  • ترجمه خط؛
  • واگن برقی؛
  • جدول بندی؛
  • صفر نمادها

با هر دو انتهای رشته. این یک تابع بسیار پس از آن است، به خصوص هنگام کار با پایگاه های داده، نمونه ای از آن اغلب شامل شکاف های بسیاری است. هنگام استفاده از تابع Explode ()، شخصیت های غیر ضروری از ابتدا و انتهای رشته نیز اغلب به دست می آیند.

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

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

  • ابتدا یک رشته را بر روی پی اچ پی بر روی یک ماسک بریزید.
  • سپس از سوی دیگر.
  • سپس سوم.

به عنوان یک نتیجه از توالی گزینه های برنامه برای یک تابع، ما متن را بر روی پی اچ پی به عنوان مورد نیاز برای حل وظیفه برش.

روش های غیر استاندارد

اگر شما تمام طیف توابع کوچکی از زبان را در نظر نگیرید، سپس جفت توابع منفجر می شود

نتیجه پرس و جو mysql این همیشه در ساختار اطلاعات صادر شده فرموله شده است و محتوای نتایج (عناصر) نتیجه همیشه توسط منبع تعیین می شود، یعنی توسعه دهنده که پایگاه داده را طراحی کرده است.

این یک مثال خصوصی است، اما دقیقا به این سوال پاسخ می دهد: نحوه برش یک رشته در PHP زمانی که بسیاری از رشته ها وجود دارد. تابع TRM () خاص است و تاریخ آن توسط وظایف تعریف شده است، زمانی که اطلاعات خیلی زیاد نبود، اما در نیاز به برش چیزی به جز شخصیت های ناچیز ضروری نبود.

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

جداسازی به اجزای نیز گزینه ای است که چگونه رشته را ترسیم کنید. پی اچ پی به طور خودکار بر اساس Explode () یک متن بزرگ را به انواع ردیف های مورد نظر کاهش می دهد. استفاده از تابع str_replace () - یعنی جایگزینی یک وقوع شخصیت ها به دیگری - می توان یک اثر مشابه را به دست آورد.

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

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

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

تصمیم سنتی

یکی از محبوب ترین و اغلب استفاده شده از ویژگی های Substr () است. دو یا سه پارامتر به آن منتقل می شوند:

    خط منبع؛ موقعیت شروع ($ IPOs)؛ طول بستر برش ($ ایلن).

آخرین پارامتر را نمی توان نشان داد. اگر تنها دو پارامتر مشخص شده باشد: نتیجه Substr () یک زیرزمینی، از موقعیت شروع ($ IPOs) به پایان خط منبع خواهد بود. اگر سه پارامتر انتقال داده شود، سپس رشته پی اچ پی را از موقعیت شروع ($ IPOs) به طول مشخص شده ($ ایلن) برش دهید.

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

تابع ویژه

وظیفه "برش خط" پی اچ پی (به معنای وسیع) در متن: در هر دو طرف. از لحاظ تاریخی، این تابع TRIM () است که قصد دارد کاراکترهای ناچیز را حذف کند:

    شکاف؛ ترجمه خط؛ واگن برقی؛ جدول بندی؛ صفر نمادها

با هر دو انتهای رشته. این یک تابع بسیار پس از آن است، به خصوص هنگام کار با پایگاه های داده، نمونه ای از آن اغلب شامل شکاف های بسیاری است. هنگام استفاده از تابع Explode ()، شخصیت های غیر ضروری از ابتدا و انتهای رشته نیز اغلب به دست می آیند.

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


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

    ابتدا یک رشته را بر روی پی اچ پی بر روی یک ماسک بریزید. سپس از سوی دیگر. سپس سوم.

به عنوان یک نتیجه از توالی گزینه های برنامه برای یک تابع، ما متن را بر روی پی اچ پی به عنوان مورد نیاز برای حل وظیفه برش.

روش های غیر استاندارد

اگر شما تمام طیف توابع کوچکی از زبان را در نظر نگیرید، سپس جفت توابع منفجر می شود


نتیجه پرس و جو MySQL همیشه در ساختار اطلاعات صادر شده فرموله شده است و محتوای نتایج (عناصر) نتیجه همیشه توسط منبع تعیین می شود، یعنی توسعه دهنده که پایگاه داده را طراحی کرده است.

این یک مثال خصوصی است، اما دقیقا به این سوال پاسخ می دهد: نحوه برش یک رشته در PHP زمانی که بسیاری از رشته ها وجود دارد. تابع TRM () خاص است و تاریخ آن توسط وظایف تعریف شده است، زمانی که اطلاعات خیلی زیاد نبود، اما در نیاز به برش چیزی به جز شخصیت های ناچیز ضروری نبود.

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

جداسازی به اجزای نیز گزینه ای است که چگونه رشته را ترسیم کنید. پی اچ پی به طور خودکار بر اساس Explode () یک متن بزرگ را به انواع ردیف های مورد نظر کاهش می دهد. استفاده از تابع str_replace () - یعنی جایگزینی یک وقوع شخصیت ها به دیگری - می توان یک اثر مشابه را به دست آورد.


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

مشاوره آنلاین در مورد مسائل تعمیر و نگهداری سایت در Ulyanovsk: ICQ # 179104682

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

تاریخ تحویل مقاله: 2014/01/2014

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

اولین چیزی که برنامه نویسان راه اندازی می شوند، به دست می آیند - عملکرد Substr PHP. این واقعا برای ترمیم رشته ها و نحو آسان است. substr.(String، INT شروع [، end طول])، جایی که int شروع - نماد اولیه که از آن شما می خواهید شروع به برش رشته، و پارامتر اختیاری طول int طول - تعداد کاراکترهایی که می خواهید برش دهید. با این حال، برای یک برنامه نویس بی تجربه، ممکن است عجیب به نظر می رسد اگر او در تلاش است از آن برای رشته های پی اچ پی پی اچ پی با سیریلیک استفاده کند. به عنوان یک نتیجه از کار Substr با رشته سیریلیک در انتهای خط برش، علامت سوال ممکن است ظاهر شود، یا علامت سوال در رمبک، و به دلایلی، تعداد کل کاراکترهای برش دو برابر چند چیز است در پارامتر طول INT مشخص شد. چرا ادامه دارد؟

نکته در آن شخصیت های روسی زبان در UTF-8 دارای اندازه 2 بایت هستند و کاراکترهای لاتین تنها 1 بایت هستند. پی اچ پی تابع substr خط را با بایت ها کاهش می دهد، و نه توسط نمادها. اگر رشته شامل شخصیت های لاتین باشد، هیچ چیز عجیب و غریب رخ نمی دهد، زیرا تعداد کاراکترها با تعداد بایت ها همخوانی دارند. و هنگام کار با سیریلیک، جایی که هر کاراکتر 2 بایت طول می کشد، پارامتر طول INT به راحتی می تواند به "وسط" شخصیت برسد، و در نتیجه، در انتهای خط برش در خروجی، ما این بیماری را خواهیم دید علامت سوال در رمبک.

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

راه حل این مشکل در واقع بسیار ساده است. برای اصلاح رشته های پی اچ پی پی اچ پی حاوی کاراکترهای سیریلیک شما نیاز به استفاده از عملکرد پی اچ پی ICONV_SUBSTR

عملکرد نحو ساده است:

iconv_substr (String، int start [، thett int [، charset]])

مثال برای برش یک رشته روسی زبان تا 80 کاراکتر با کدگذاری UTF-8 با استفاده از iconv_substr:

$ new_string \u003d iconv_substr ($ string، 0، 80، "UTF-8")؛

تعداد صفر در مثال به این معنی است که شمارش معکوس 80 کاراکتر از ابتدای رشته شروع می شود.

تابع substr. ($ String، $ START، $ طول)، جایی که رشته $ یک متغیر با متن است، $ شروع یک کاراکتر است که شمارش شروع می شود (برای اولین حرف 0)، و $ طول تعداد کاراکترهای متن انتخاب شده است .

$ text \u003d "مثال و متن"؛

$ first \u003d substr ($ text، 0،6)؛ // نشان می دهد 6 کاراکتر از 0th، اولین بار
Echo $ اول؛ // "مثال" خواهد شد.

$ second \u003d substr ($ text، 8.3)؛ // نشان می دهد 3 کاراکتر از 8th
echo $ دوم؛ // خواهد شد "و"
اگر تعداد پارامتر شخصیت ها (2 رقمی) را مشخص نکنید، تابع تمام شخصیت های باقی مانده را تولید می کند.

$ text \u003d "مثال و متن"؛

$ سوم \u003d Substr ($ text، 8)؛ // تمام شخصیت ها را از 8th نشان می دهد
echo $ سوم؛ // از "و متن"

متن روسی را با استفاده از تابع MB_Substr پی اچ پی بریزید

تابع mb_substr. همان وظایف مشابه را انجام می دهد substr.اما همچنین قادر به اداره رمزگذاری چندبعدی است. بنابراین، در مورد متن روسی شما مفید خواهد بود. mb_substr.. این کار مشابه است

$ text \u003d "مثال متن"؛

$ first \u003d mb_substr ($ text، 0.6، "UTF-8")؛ // نشان می دهد 6 کاراکتر از 0th، اولین بار
// توجه! کد منبع کد را مشخص کنید! که در این مورد UTF-8.
Echo $ اول؛ // "مثال" حذف شده "

$ second \u003d mb_substr ($ text، 7.6، "UTF-8")؛ // نشان می دهد 6 کاراکتر از 7th
echo $ دوم؛ // برداشتن "متن"
لطفا توجه داشته باشید که در مورد سیریلیک (متن روسی)، بهتر است که کدگذاری را در انتهای تابع مشخص کنید. در مثال، محبوب ترین گزینه استفاده می شود - UTF-8

متن را از انتها بردارید

اگر می خواهید متن را از انتها بردارید، برای انجام این کار، یک عدد منفی را برای یک متغیر که از آن نماد شروع می شود، مشخص کنید.

$ text \u003d "sprite and fanta"؛

$ first \u003d substr ($ text، -6،5)؛ // نشان می دهد 5 کاراکتر از 6th از پایان
Echo $ اول؛ // "fant"

پس از برش، من همچنین متن را تمام می کنم

پس از برش متغیر با متن اضافه کردن متن اضافی

$ example \u003d "متن متن متن متن"؛

$ example \u003d substr ($ مثال، 0.9)؛ // نشان می دهد 9 کاراکتر از 0th، اولین بار
$ مثال \u003d "بیشتر ..."؛
echo $ مثال؛ // آیا "متن متن بیشتر ..."
شما می توانید برعکس، برای ضبط در ابتدا، و سپس متن ترک خورده

$ text \u003d "عمو"؛

$ مثال \u003d "جورج و مایکل"؛
$ example \u003d substr ($ مثال، 0،6)؛ // نشان می دهد 6 کاراکتر از 0th، اولین بار
$ text \u003d $ مثال؛
echo $ text؛ // "عمو جورج"

متن پیرایش به اولین خالی

$ text \u003d "سلام جهان!"؛
Echo Substr ($ text، 0، strs ($ text، "))؛ // "سلام"

کلمه پی اچ پی پی اچ پی به پایان رسید با توجه به پی اچ پی

عملکرد برش ($ string، $ طول) (
$ string \u003d mb_substr ($ string، 0، $ طول، "UTF-8")؛ // برش و کار با تمام کدگذاری ها و نشان دادن کدگذاری منبع
$ موقعیت \u003d mb_strpos ($ string، "،" utf-8 ")؛ // تعریف موقعیت آخرین فضای. آن را بر روی او و به اشتراک گذاشتن کلمات
$ string \u003d mb_substr ($ string، 0، $ موقعیت، UTF-8 ")؛ // متغیر را با موقعیت برش دهید
بازگشت $ رشته؛
}

$ text \u003d "جنگ شمالی به پایان رسید در سال 1721"؛
Echo Cut ($ متن، 17)؛ // خروج "جنگ شمالی"، بدون بخشی از کلمه "به پایان رسید"

شما می توانید با توجه به کلمات از طریق یک آرایه ...

$ text \u003d "مایکروسافت توسط بیل گیتس در سال 1975 تاسیس شد."

$ Array \u003d Explode (""، $ متن)؛ // رشته را به یک آرایه بازسازی کنید
$ array \u003d array_slice ($ array، 0.5)؛ // اولین عناصر 5 کلمه اول را انتخاب کنید
$ newtext \u003d uncode (""، $ آرایه)؛ // آرایه بازیافت دوباره در رشته

Echo $ newtext؛ // لغو "مایکروسافت توسط بیل گیتس تاسیس شد"