កាត់តួអក្សរចុងក្រោយនៅក្នុងខ្សែអក្សរ php ។ មុខងារសម្រាប់ធ្វើការជាមួយខ្សែអក្សរក្នុង php ។ មុខងារ PHP strtolower - បំប្លែងខ្សែអក្សរទៅជាអក្សរតូច

ប្លង់គេហទំព័រដែលអាចសម្របខ្លួនបានពាក់ព័ន្ធនឹងការផ្លាស់ប្តូរគ្រប់គ្រាន់នៅក្នុងទំព័ររបស់វា អាស្រ័យលើឧបករណ៍ដែលអ្នកទស្សនាកំពុងប្រើ។ ប្រសិនបើទាក់ទងនឹងធាតុប្លុក និងក្នុងបន្ទាត់ ស្ទើរតែអ្វីៗទាំងអស់អាចត្រូវបាន "ស្វ័យប្រវត្តិ" ដោយប្រើ CSS និង JavaScript បន្ទាប់មកនៅពេលបង្កើតមាតិកា និងប្រើប្រាស់មូលដ្ឋានទិន្នន័យ វាពិបាកក្នុងការធ្វើដោយគ្មានផ្នែកខាងម៉ាស៊ីនមេ។

ជាធម្មតាយើងកាត់បន្ថយបន្ទាត់នៅក្នុង PHP នៅពេលដែលធាតុប្លង់ HTML មានដែនកំណត់លើចំនួនតួអក្សរដែលអាចមើលឃើញ ប៉ុន្តែនេះគឺជាកិច្ចការឯកជន។

ដំណោះស្រាយបែបបុរាណ

មុខងារមួយក្នុងចំណោមមុខងារដែលពេញនិយម និងប្រើញឹកញាប់បំផុតគឺ substr()។ ប៉ារ៉ាម៉ែត្រពីរឬបីត្រូវបានបញ្ជូនទៅវា:

    ខ្សែប្រភព; ទីតាំងចាប់ផ្តើម ($iPos); ប្រវែងនៃខ្សែអក្សររងដែលត្រូវកាត់ ($iLen)។

ប៉ារ៉ាម៉ែត្រចុងក្រោយអាចត្រូវបានលុបចោល។ ប្រសិនបើមានតែប៉ារ៉ាម៉ែត្រពីរប៉ុណ្ណោះត្រូវបានផ្តល់ឱ្យ៖ លទ្ធផលនៃ substr() នឹងក្លាយជាខ្សែអក្សររង ពីទីតាំងចាប់ផ្តើម ($iPos) ដល់ចុងបញ្ចប់នៃខ្សែអក្សរដើម។ ប្រសិនបើប៉ារ៉ាម៉ែត្របីត្រូវបានឆ្លងកាត់ នោះយើងកាត់ខ្សែអក្សរ PHP ពីទីតាំងចាប់ផ្តើម ($iPos) ទៅប្រវែងដែលបានបញ្ជាក់ ($iLen)។

ការជ្រើសរើសតែការចាប់ផ្តើមនៃខ្សែអក្សរដោយប្រើមុខងារនេះគឺអាចធ្វើទៅបាននៅពេលដែលប៉ារ៉ាម៉ែត្រទីមួយគឺសូន្យ។ ប្រសិនបើទីតាំងដំបូងគឺអវិជ្ជមាន នោះ PHP នឹងពិចារណាតួអក្សរនៅទីតាំង $iPos ពីចុងបញ្ចប់នៃខ្សែអក្សរ ដើម្បីជាការចាប់ផ្តើមដែលយើងកាត់ខ្សែអក្សរ។ តួ​អក្សរ​ក្នុង​បន្ទាត់​ត្រូវ​បាន​ដាក់​លេខ​ចាប់​ពី​សូន្យ។

មុខងារពិសេស

PHP ពិចារណាលើភារកិច្ច "កាត់ខ្សែអក្សរ" (ក្នុងន័យទូលំទូលាយ) ក្នុងបរិបទ៖ ពីភាគីទាំងពីរ។ ជាប្រវត្តិសាស្ត្រ នេះគឺជាមុខងារ trim() ដែលមានបំណងលុបតួអក្សរដែលមិនសំខាន់ចេញ៖

    ចន្លោះ; ការបំបែកបន្ទាត់; ការត្រឡប់មកវិញនៃការដឹកជញ្ជូន; តារាង; តួអក្សរ null

ពីចុងទាំងពីរនៃបន្ទាត់។ នេះគឺជាមុខងារដ៏ពេញនិយមមួយ ជាពិសេសនៅពេលធ្វើការជាមួយមូលដ្ឋានទិន្នន័យ ការជ្រើសរើសដែលតែងតែមានចន្លោះច្រើន។ ការ​ប្រើ​មុខងារ explode() ច្រើន​តែ​នាំ​ឱ្យ​មាន​តួអក្សរ​បន្ថែម​នៅ​ខាង​ដើម និង​ចុង​នៃ​ខ្សែអក្សរ។

ទោះយ៉ាងណាក៏ដោយ មិនមែនអ្នកអភិវឌ្ឍន៍ទាំងអស់ប្រើមុខងារ trim() ដល់សក្តានុពលពេញលេញរបស់វានោះទេ។ សម្រាប់កិច្ចការ "កាត់ខ្សែអក្សរ" PHP ស្នើឱ្យប្រើប៉ារ៉ាម៉ែត្រទីពីរនៃមុខងារ ដែលអ្នកអាចបញ្ជាក់សំណុំតួអក្សរណាមួយដែលគួរតែត្រូវបានលុបចេញពីខ្សែអក្សរប្រភព។


វាមានសារៈសំខាន់ដែលតួអក្សរត្រូវបានដកចេញតែពីដើម និងចុងបញ្ចប់នៃខ្សែអក្សរប្រភពប៉ុណ្ណោះ។ វាជាការសំខាន់ណាស់ដែលដោយរៀបចំរបាំងនៃតួអក្សរដែលត្រូវលុបនិងលំដាប់នៃកិច្ចការរង។

    ដំបូង​យើង​កាត់​ខ្សែអក្សរ PHP មួយ​របាំង​ម្ដងៗ។ បន្ទាប់មកមួយទៀត។ បន្ទាប់មកនៅថ្ងៃទីបី។

ជាលទ្ធផលនៃលំដាប់នៃជម្រើសសម្រាប់ការប្រើប្រាស់មុខងារមួយ យើងបានកាត់ចេញអត្ថបទនៅក្នុង PHP តាមតម្រូវការដើម្បីដោះស្រាយកិច្ចការ។

វិធីសាស្រ្តមិនស្តង់ដារ

ប្រសិនបើយើងមិនពិចារណាលើជួរទាំងមូលនៃមុខងារខ្សែអក្សរនៃភាសានោះ មុខងារទាំងពីរនេះផ្ទុះ()/implode() ហើយមុខងារ str_replace() អនុញ្ញាតឱ្យយើងដោះស្រាយបញ្ហាដែលមិនមានលក្ខណៈស្តង់ដារនៃព័ត៌មានខ្សែអក្សរ "កាត់"។


លទ្ធផលនៃសំណួរ MySQL តែងតែមានលក្ខណៈផ្លូវការនៅក្នុងរចនាសម្ព័ន្ធនៃព័ត៌មានដែលបានត្រឡប់មកវិញ ហើយខ្លឹមសារនៃវាល (ធាតុ) នៃលទ្ធផលគឺតែងតែត្រូវបានកំណត់ដោយប្រភព ពោលគឺអ្នកអភិវឌ្ឍន៍ដែលបានរចនាមូលដ្ឋានទិន្នន័យ។

នេះគឺជាឧទាហរណ៍ជាក់លាក់មួយ ប៉ុន្តែវាពិតជាឆ្លើយសំណួរ៖ របៀបកាត់បន្ទាត់ក្នុង PHP នៅពេលដែលមានបន្ទាត់ច្រើន។ អនុគមន៍ trm() គឺជាមុខងារជាក់លាក់មួយ ហើយប្រវត្តិរបស់វាត្រូវបានកំណត់ដោយភារកិច្ចនៅពេលដែលមិនមានព័ត៌មានច្រើន ហើយមិនចាំបាច់កាត់ផ្តាច់អ្វីក្រៅពីតួអក្សរដែលមិនសំខាន់នោះទេ។

សព្វ​ថ្ងៃ​នេះ​ព័ត៌មាន​ផ្សាយ​ជា​ដុំ​ធំ ហើយ​ការ​កាត់​តាម​បន្ទាត់​គឺ​មិន​ត្រឹម​តែ​មិន​ចាំ​បាច់​ប៉ុណ្ណោះ​ទេ ប៉ុន្តែ​ក៏​មិន​សម​ហេតុ​ផល​ដែរ។

ការបំបែកចូលទៅក្នុងសមាសធាតុក៏ជាជម្រើសមួយផងដែរ ដូចជាការកាត់ខ្សែអក្សរ។ PHP នឹងប្រើ explode() ដោយស្វ័យប្រវត្តិដើម្បីកាត់អត្ថបទធំមួយទៅជាបន្ទាត់ដែលត្រូវការជាច្រើន។ ដោយប្រើមុខងារ str_replace() - នោះគឺការជំនួសការកើតឡើងនៃតួអក្សរមួយជាមួយមួយផ្សេងទៀត - អ្នកអាចសម្រេចបាននូវឥទ្ធិពលស្រដៀងគ្នា។


ថាមវន្ត និងបរិមាណនៃព័ត៌មានដែលត្រូវការដំណើរការជាដំបូង ដំណោះស្រាយគ្រប់គ្រាន់ មិនមែនការប្រើប្រាស់មុខងារពិសេសមួយនោះទេ។

ការពិគ្រោះយោបល់តាមអ៊ីនធឺណិតលើការថែទាំគេហទំព័រនៅ Ulyanovsk: ICQ# 179104682

របៀបកាត់ខ្សែអក្សរ Cyrillic ដោយប្រើ PHP

កាលបរិច្ឆេទនៃការបោះពុម្ពអត្ថបទ៖ ០៦/០១/២០១៤

ការបង្កើតគេហទំព័រនៅ Ulyanovsk ដែលមានមុខងារធ្ងន់ធ្ងរ និងអន្តរកម្មជាមួយមូលដ្ឋានទិន្នន័យជាញឹកញាប់តម្រូវឱ្យបន្ទាត់ជាក់លាក់មួយមិនលើសពីបរិមាណជាក់លាក់ជាក់លាក់មួយ។ ជាឧទាហរណ៍ វាអាចត្រូវការជាចាំបាច់ ដើម្បីកំណត់ចំនួនតួអក្សរដែលបានបញ្ជូនទៅម៉ាស៊ីនមេមូលដ្ឋានទិន្នន័យដោយប្រើវាលបញ្ចូល ដើម្បីបង្ហាញតែផ្នែកនៃបន្ទាត់នៅលើទំព័រគេហទំព័រ (ឧទាហរណ៍ នៅពេលបង្កើតការប្រកាសព័ត៌មានដែលមានកម្ពស់ស្មើគ្នាក្នុងបញ្ជី) និងសម្រាប់កិច្ចការជាច្រើនទៀត។

រឿងដំបូងដែលអ្នកសរសេរកម្មវិធីថ្មីថ្មោងជួបប្រទះគឺមុខងារ PHP substr ។ វា​ពិត​ជា​ត្រូវ​បាន​ប្រើ​ដើម្បី​កាត់​ខ្សែ​អក្សរ ហើយ​វាក្យសម្ព័ន្ធ​របស់​វា​គឺ​សាមញ្ញ ស្រទាប់ខាងក្រោម(string, int start [, int length]) ដែល int start គឺជាតួអក្សរចាប់ផ្តើមដែលចាប់ផ្តើមកាត់ខ្សែអក្សរ ហើយប៉ារ៉ាម៉ែត្រស្រេចចិត្ត int length គឺជាចំនួនតួអក្សរដែលត្រូវកាត់។ ទោះយ៉ាងណាក៏ដោយ វាហាក់ដូចជាចម្លែកចំពោះអ្នកសរសេរកម្មវិធីដែលគ្មានបទពិសោធន៍ ប្រសិនបើគាត់ព្យាយាមប្រើវាដើម្បីកាត់ខ្សែអក្សរ Cyrillic នៅក្នុង PHP ។ ជាលទ្ធផលនៃស្រទាប់រងដែលធ្វើការជាមួយខ្សែអក្សរ Cyrillic សញ្ញាសួរ ឬសញ្ញាសួរនៅក្នុងពេជ្រ អាចលេចឡើងនៅចុងបញ្ចប់នៃខ្សែអក្សរដែលបានកាត់ ហើយសម្រាប់ហេតុផលមួយចំនួន ចំនួនសរុបនៃតួអក្សរដែលបានកាត់គឺតិចជាងពីរដង។ បញ្ជាក់​ក្នុង​ប៉ារ៉ាម៉ែត្រ​ប្រវែង int ។ ហេតុអ្វីបានជារឿងនេះកើតឡើង?

ការពិតគឺថាតួអក្សររុស្ស៊ីនៅក្នុង UTF-8 មានទំហំ 2 បៃ ហើយអក្សរឡាតាំងមានត្រឹមតែ 1 បៃប៉ុណ្ណោះ។ អនុគមន៍ PHP កាត់ខ្សែអក្សរដោយបៃ មិនមែនដោយតួអក្សរទេ។ ប្រសិនបើខ្សែអក្សរមានតួអក្សរឡាតាំង នោះគ្មានអ្វីចម្លែកកើតឡើងទេ ព្រោះចំនួនតួអក្សរត្រូវគ្នានឹងចំនួនបៃ។ ហើយនៅពេលធ្វើការជាមួយអក្ខរក្រម Cyrillic ដែលតួអក្សរនីមួយៗយក 2 បៃ ប៉ារ៉ាម៉ែត្រប្រវែង int អាចធ្លាក់ចូលទៅក្នុង "កណ្តាល" នៃតួអក្សរបានយ៉ាងងាយស្រួល ហើយជាលទ្ធផល នៅចុងបញ្ចប់នៃបន្ទាត់កាត់ នៅពេលចេញ យើងនឹង ឃើញសញ្ញាសួរមិនល្អនោះនៅក្នុងពេជ្រ។

តើធ្វើដូចម្តេចដើម្បីកាត់ផ្នែកនៃបន្ទាត់ដែលមានអក្ខរក្រម Cyrillic ឱ្យបានត្រឹមត្រូវ?

ដំណោះស្រាយចំពោះបញ្ហានេះគឺពិតជាសាមញ្ញណាស់។ សម្រាប់ការកំណត់ PHP ត្រឹមត្រូវនៃខ្សែអក្សរដែលមានតួអក្សរ Cyrillic អ្នកត្រូវប្រើមុខងារ PHP iconv_substr

វាក្យសម្ព័ន្ធមុខងារគឺសាមញ្ញ៖

iconv_substr (string, int start [, int length [, charset]])

ឧទាហរណ៍សម្រាប់កាត់ខ្សែអក្សរជាភាសារុស្សីទៅជា 80 តួអក្សរជាមួយនឹងការអ៊ិនកូដ UTF-8 ដោយប្រើ iconv_substr៖

$new_string = iconv_substr ($string, 0, 80, “UTF-8”);

លេខសូន្យក្នុងឧទាហរណ៍មានន័យថាចំនួន 80 តួអក្សរចាប់ផ្តើមពីដើមបន្ទាត់។

គេហទំព័រសន្មត់ថាមានការផ្លាស់ប្តូរគ្រប់គ្រាន់នៅក្នុងទំព័ររបស់វា អាស្រ័យលើឧបករណ៍ដែលអ្នកទស្សនាប្រើ។ ប្រសិនបើទាក់ទងនឹងធាតុប្លុក និងក្នុងបន្ទាត់ ស្ទើរតែអ្វីៗទាំងអស់អាចត្រូវបាន "ស្វ័យប្រវត្តិ" ដោយប្រើ CSS និង JavaScript បន្ទាប់មកនៅពេលបង្កើតមាតិកា និងប្រើប្រាស់មូលដ្ឋានទិន្នន័យ វាពិបាកក្នុងការធ្វើដោយគ្មានផ្នែកខាងម៉ាស៊ីនមេ។

ជាធម្មតាយើងកាត់បន្ថយបន្ទាត់នៅក្នុង PHP នៅពេលដែលធាតុប្លង់ HTML មានដែនកំណត់លើចំនួនតួអក្សរដែលអាចមើលឃើញ ប៉ុន្តែនេះគឺជាកិច្ចការឯកជន។

ដំណោះស្រាយបែបបុរាណ

មុខងារមួយក្នុងចំណោមមុខងារដែលពេញនិយម និងប្រើញឹកញាប់បំផុតគឺ substr()។ ប៉ារ៉ាម៉ែត្រពីរឬបីត្រូវបានបញ្ជូនទៅវា:

  • ខ្សែប្រភព;
  • ទីតាំងចាប់ផ្តើម ($iPos);
  • ប្រវែងនៃខ្សែអក្សររងដែលត្រូវកាត់ ($iLen)។

ប៉ារ៉ាម៉ែត្រចុងក្រោយអាចត្រូវបានលុបចោល។ ប្រសិនបើមានតែប៉ារ៉ាម៉ែត្រពីរប៉ុណ្ណោះត្រូវបានផ្តល់ឱ្យ៖ លទ្ធផលនៃ substr() នឹងក្លាយជាខ្សែអក្សររង ពីទីតាំងចាប់ផ្តើម ($iPos) ដល់ចុងបញ្ចប់នៃខ្សែអក្សរដើម។ ប្រសិនបើប៉ារ៉ាម៉ែត្របីត្រូវបានឆ្លងកាត់ នោះយើងកាត់ខ្សែអក្សរ PHP ពីទីតាំងចាប់ផ្តើម ($iPos) ទៅប្រវែងដែលបានបញ្ជាក់ ($iLen)។

ការជ្រើសរើសតែការចាប់ផ្តើមនៃខ្សែអក្សរដោយប្រើមុខងារនេះគឺអាចធ្វើទៅបាននៅពេលដែលប៉ារ៉ាម៉ែត្រទីមួយគឺសូន្យ។ ប្រសិនបើទីតាំងដំបូងគឺអវិជ្ជមាន នោះ PHP នឹងពិចារណាតួអក្សរនៅទីតាំង $iPos ពីចុងបញ្ចប់នៃខ្សែអក្សរ ដើម្បីជាការចាប់ផ្តើមដែលយើងកាត់ខ្សែអក្សរ។ តួ​អក្សរ​ក្នុង​បន្ទាត់​ត្រូវ​បាន​ដាក់​លេខ​ចាប់​ពី​សូន្យ។

មុខងារពិសេស

PHP ពិចារណាលើភារកិច្ច "កាត់ខ្សែអក្សរ" (ក្នុងន័យទូលំទូលាយ) ក្នុងបរិបទ៖ ពីភាគីទាំងពីរ។ ជាប្រវត្តិសាស្ត្រ នេះគឺជាមុខងារ trim() ដែលមានបំណងលុបតួអក្សរដែលមិនសំខាន់ចេញ៖

  • ចន្លោះ;
  • ការបំបែកបន្ទាត់;
  • ការត្រឡប់មកវិញនៃការដឹកជញ្ជូន;
  • តារាង;
  • តួអក្សរ null

ពីចុងទាំងពីរនៃបន្ទាត់។ នេះគឺជាមុខងារដ៏ពេញនិយមមួយ ជាពិសេសនៅពេលធ្វើការជាមួយមូលដ្ឋានទិន្នន័យ ការជ្រើសរើសដែលតែងតែមានចន្លោះច្រើន។ ការ​ប្រើ​មុខងារ explode() ច្រើន​តែ​នាំ​ឱ្យ​មាន​តួអក្សរ​បន្ថែម​នៅ​ខាង​ដើម និង​ចុង​នៃ​ខ្សែអក្សរ។

ទោះយ៉ាងណាក៏ដោយ មិនមែនអ្នកអភិវឌ្ឍន៍ទាំងអស់ប្រើមុខងារ trim() ដល់សក្តានុពលពេញលេញរបស់វានោះទេ។ សម្រាប់កិច្ចការ "កាត់ខ្សែអក្សរ" PHP ស្នើឱ្យប្រើប៉ារ៉ាម៉ែត្រទីពីរនៃមុខងារ ដែលអ្នកអាចបញ្ជាក់សំណុំតួអក្សរណាមួយដែលគួរតែត្រូវបានលុបចេញពីខ្សែអក្សរប្រភព។

វាមានសារៈសំខាន់ដែលតួអក្សរត្រូវបានដកចេញតែពីដើម និងចុងបញ្ចប់នៃខ្សែអក្សរប្រភពប៉ុណ្ណោះ។ វាជាការសំខាន់ណាស់ដែលដោយរៀបចំរបាំងនៃតួអក្សរដែលត្រូវលុបនិងលំដាប់នៃកិច្ចការរង។

  • ដំបូង​យើង​កាត់​ខ្សែអក្សរ PHP មួយ​របាំង​ម្ដងៗ។
  • បន្ទាប់មកមួយទៀត។
  • បន្ទាប់មកនៅថ្ងៃទីបី។

ជាលទ្ធផលនៃលំដាប់នៃជម្រើសសម្រាប់ការប្រើប្រាស់មុខងារមួយ យើងបានកាត់ចេញអត្ថបទនៅក្នុង PHP តាមតម្រូវការដើម្បីដោះស្រាយកិច្ចការ។

វិធីសាស្រ្តមិនស្តង់ដារ

ប្រសិនបើយើងមិនពិចារណាលើជួរទាំងមូលនៃមុខងារខ្សែអក្សរនៃភាសានោះ មុខងារទាំងពីរនេះផ្ទុះ()/implode() ហើយមុខងារ str_replace() អនុញ្ញាតឱ្យយើងដោះស្រាយបញ្ហាដែលមិនមានលក្ខណៈស្តង់ដារនៃព័ត៌មានខ្សែអក្សរ "កាត់"។

លទ្ធផលនៃសំណួរ MySQL តែងតែមានលក្ខណៈផ្លូវការនៅក្នុងរចនាសម្ព័ន្ធនៃព័ត៌មានដែលបានត្រឡប់មកវិញ ហើយខ្លឹមសារនៃវាល (ធាតុ) នៃលទ្ធផលគឺតែងតែត្រូវបានកំណត់ដោយប្រភព ពោលគឺអ្នកអភិវឌ្ឍន៍ដែលបានរចនាមូលដ្ឋានទិន្នន័យ។

នេះគឺជាឧទាហរណ៍ជាក់លាក់មួយ ប៉ុន្តែវាពិតជាឆ្លើយសំណួរ៖ របៀបកាត់បន្ទាត់ក្នុង PHP នៅពេលដែលមានបន្ទាត់ច្រើន។ អនុគមន៍ trm() គឺជាមុខងារជាក់លាក់មួយ ហើយប្រវត្តិរបស់វាត្រូវបានកំណត់ដោយភារកិច្ចនៅពេលដែលមិនមានព័ត៌មានច្រើន ហើយមិនចាំបាច់កាត់ផ្តាច់អ្វីក្រៅពីតួអក្សរដែលមិនសំខាន់នោះទេ។

សព្វ​ថ្ងៃ​នេះ​ព័ត៌មាន​ផ្សាយ​ជា​ដុំ​ធំ ហើយ​ការ​កាត់​តាម​បន្ទាត់​គឺ​មិន​ត្រឹម​តែ​មិន​ចាំ​បាច់​ប៉ុណ្ណោះ​ទេ ប៉ុន្តែ​ក៏​មិន​សម​ហេតុ​ផល​ដែរ។

ការបំបែកចូលទៅក្នុងសមាសធាតុក៏ជាជម្រើសមួយផងដែរ ដូចជាការកាត់ខ្សែអក្សរ។ PHP នឹងប្រើ explode() ដោយស្វ័យប្រវត្តិដើម្បីកាត់អត្ថបទធំមួយទៅជាបន្ទាត់ដែលត្រូវការជាច្រើន។ ដោយប្រើមុខងារ str_replace() - នោះគឺការជំនួសការកើតឡើងនៃតួអក្សរមួយជាមួយមួយផ្សេងទៀត - អ្នកអាចសម្រេចបាននូវឥទ្ធិពលស្រដៀងគ្នា។

ថាមវន្ត និងបរិមាណនៃព័ត៌មានដែលត្រូវការដំណើរការជាដំបូង ដំណោះស្រាយគ្រប់គ្រាន់ មិនមែនការប្រើប្រាស់មុខងារពិសេសមួយនោះទេ។