Potong aksara terakhir dalam rentetan php. Fungsi untuk bekerja dengan rentetan dalam php. Fungsi PHP strtolower - menukar rentetan kepada huruf kecil

Reka letak tapak web adaptif melibatkan perubahan yang mencukupi dalam halamannya bergantung pada peranti yang digunakan pelawat. Jika berkenaan dengan elemen sekatan dan sebaris hampir semuanya boleh "automatik" menggunakan CSS dan JavaScript, maka apabila menjana kandungan dan menggunakan pangkalan data, sukar untuk dilakukan tanpa bahagian pelayan.

Kami biasanya memotong baris dalam PHP apabila elemen reka letak HTML mempunyai had pada bilangan aksara yang boleh dilihat, tetapi ini adalah tugas peribadi.

Penyelesaian tradisional

Salah satu fungsi yang paling popular dan kerap digunakan ialah substr(). Dua atau tiga parameter dihantar kepadanya:

    rentetan sumber; kedudukan mula ($iPos); panjang subrentetan yang akan dipotong ($iLen).

Parameter terakhir boleh diabaikan. Jika hanya dua parameter diberikan: hasil substr() akan menjadi subrentetan, dari kedudukan mula ($iPos) hingga akhir rentetan asal. Jika tiga parameter telah diluluskan, maka kami memangkas rentetan PHP dari kedudukan mula ($iPos) kepada panjang yang ditentukan ($iLen).

Memilih hanya permulaan rentetan menggunakan fungsi ini adalah mungkin apabila parameter pertama adalah sifar. Jika kedudukan awal adalah negatif, maka PHP akan menganggap watak pada kedudukan $iPos dari penghujung rentetan sebagai permulaan dari mana kita memotong rentetan. Aksara dalam satu baris dinomborkan bermula dari sifar.

Fungsi khas

PHP menganggap tugas "memotong rentetan" (dalam erti kata yang luas) dalam konteks: dari kedua-dua belah pihak. Dari segi sejarah, ini ialah fungsi trim(), yang bertujuan untuk membuang aksara yang tidak penting:

    ruang; garis putus; pemulangan pengangkutan; jadual; aksara nol

dari kedua-dua hujung talian. Ini adalah ciri yang sangat popular, terutamanya apabila bekerja dengan pangkalan data, pemilihan daripadanya sering mengandungi banyak ruang. Menggunakan fungsi explode() juga selalunya menghasilkan aksara tambahan pada permulaan dan penghujung rentetan.

Walau bagaimanapun, tidak semua pembangun menggunakan fungsi trim() sepenuhnya. Untuk tugasan "memotong rentetan", PHP mencadangkan menggunakan parameter kedua fungsi, di mana anda boleh menentukan sebarang set aksara yang harus dihapuskan daripada rentetan sumber.


Adalah penting bahawa aksara dialih keluar hanya dari awal dan akhir rentetan sumber. Adalah penting bahawa dengan memanipulasi topeng aksara yang akan dipadamkan dan urutan subtugasan.

    Mula-mula, kami memotong rentetan PHP satu topeng pada satu masa. Kemudian satu lagi. Kemudian pada yang ketiga.

Hasil daripada urutan pilihan untuk menggunakan satu fungsi, kami memotong teks dalam PHP seperti yang diperlukan untuk menyelesaikan tugas.

Kaedah bukan standard

Jika kami tidak mengambil kira keseluruhan julat fungsi rentetan bahasa, pasangan fungsi explode()/implode() dan fungsi str_replace() membolehkan kami menyelesaikan masalah bukan standard bagi maklumat rentetan "memotong".


Hasil pertanyaan MySQL sentiasa formal dalam struktur maklumat yang dikembalikan, dan kandungan medan (elemen) hasil sentiasa ditentukan oleh sumber, iaitu, pembangun yang mereka pangkalan data.

Ini adalah contoh tertentu, tetapi ia betul-betul menjawab soalan: bagaimana untuk memotong baris dalam PHP apabila terdapat banyak baris. Fungsi trm() ialah fungsi tertentu, dan sejarahnya ditentukan oleh tugas apabila tidak ada banyak maklumat, dan tidak perlu memotong apa-apa selain daripada aksara yang tidak penting.

Hari ini maklumat beredar dalam jumlah yang besar dan memotong baris demi baris bukan sahaja tidak perlu, tetapi juga tidak rasional.

Membahagi kepada komponen juga merupakan pilihan, seperti memotong rentetan. PHP secara automatik akan menggunakan explode() untuk memotong satu teks besar kepada banyak baris yang diperlukan. Dengan menggunakan fungsi str_replace() - iaitu, menggantikan satu kejadian aksara dengan yang lain - anda boleh mencapai kesan yang sama.


Dinamik dan jumlah maklumat yang perlu diproses adalah, pertama sekali, penyelesaian yang mencukupi, dan bukan penggunaan satu fungsi khas.

Perundingan dalam talian mengenai penyelenggaraan laman web di Ulyanovsk: ICQ# 179104682

Bagaimana untuk memangkas rentetan Cyrillic menggunakan PHP

Tarikh penerbitan artikel: 06/01/2014

Mencipta laman web di Ulyanovsk dengan fungsi yang serius dan interaksi dengan pangkalan data selalunya memerlukan baris tertentu tidak melebihi volum tertentu tertentu. Ini mungkin diperlukan, sebagai contoh, untuk mengehadkan bilangan aksara yang dihantar ke pelayan pangkalan data menggunakan medan input, untuk memaparkan hanya sebahagian daripada baris pada halaman tapak (contohnya, apabila membuat pengumuman berita dengan ketinggian yang sama dalam senarai) dan untuk banyak tugas lain.

Perkara pertama yang ditemui oleh pengaturcara baru ialah substr fungsi PHP. Ia sebenarnya digunakan untuk memangkas rentetan dan sintaksnya adalah mudah substr(rentetan, int start [, int length]), di mana int start ialah aksara permulaan untuk mula memotong rentetan, dan parameter pilihan int length ialah bilangan aksara untuk dipotong. Walau bagaimanapun, ia mungkin kelihatan pelik kepada pengaturcara yang tidak berpengalaman jika dia cuba menggunakannya untuk memangkas rentetan Cyrillic dalam PHP. Hasil daripada substr yang berfungsi dengan rentetan Cyrillic, tanda soal atau tanda soal dalam berlian, mungkin muncul pada penghujung rentetan yang dipangkas, dan atas sebab tertentu jumlah bilangan aksara yang dipangkas adalah dua kali kurang daripada yang dinyatakan dalam parameter panjang int. Kenapa ini terjadi?

Hakikatnya ialah aksara Rusia dalam UTF-8 bersaiz 2 bait, dan aksara Latin hanya 1 bait. Substr fungsi PHP memotong rentetan mengikut bait, bukan dengan aksara. Jika rentetan terdiri daripada aksara Latin, maka tiada apa yang pelik berlaku, kerana bilangan aksara bertepatan dengan bilangan bait. Dan apabila bekerja dengan abjad Cyrillic, di mana setiap aksara mengambil 2 bait, parameter panjang int dengan mudah boleh jatuh ke dalam "tengah" aksara, dan sebagai hasilnya, pada penghujung garis potong, apabila mengeluarkan, kita akan lihat tanda tanya malang itu dalam berlian.

Bagaimana cara memotong bahagian garis dengan abjad Cyrillic dengan betul?

Penyelesaian kepada masalah ini sebenarnya sangat mudah. Untuk pemangkasan PHP yang betul bagi rentetan yang mengandungi aksara Cyrillic, anda perlu menggunakan fungsi PHP iconv_substr

Sintaks fungsi adalah mudah:

iconv_substr (rentetan, int mula [, int panjang [, set aksara]])

Contoh untuk memangkas rentetan bahasa Rusia kepada 80 aksara dengan pengekodan UTF-8 menggunakan iconv_substr:

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

Nombor sifar dalam contoh bermakna kiraan 80 aksara bermula dari awal baris.

Tapak ini menganggap perubahan yang mencukupi dalam halamannya bergantung pada peranti yang digunakan pelawat. Jika berkenaan dengan elemen sekatan dan sebaris hampir semuanya boleh "automatik" menggunakan CSS dan JavaScript, maka apabila menjana kandungan dan menggunakan pangkalan data, sukar untuk dilakukan tanpa bahagian pelayan.

Kami biasanya memotong baris dalam PHP apabila elemen reka letak HTML mempunyai had pada bilangan aksara yang boleh dilihat, tetapi ini adalah tugas peribadi.

Penyelesaian tradisional

Salah satu fungsi yang paling popular dan kerap digunakan ialah substr(). Dua atau tiga parameter dihantar kepadanya:

  • rentetan sumber;
  • kedudukan mula ($iPos);
  • panjang subrentetan yang akan dipotong ($iLen).

Parameter terakhir boleh diabaikan. Jika hanya dua parameter diberikan: hasil substr() akan menjadi subrentetan, dari kedudukan mula ($iPos) hingga akhir rentetan asal. Jika tiga parameter telah diluluskan, maka kami memangkas rentetan PHP dari kedudukan mula ($iPos) kepada panjang yang ditentukan ($iLen).

Memilih hanya permulaan rentetan menggunakan fungsi ini adalah mungkin apabila parameter pertama adalah sifar. Jika kedudukan awal adalah negatif, maka PHP akan menganggap watak pada kedudukan $iPos dari penghujung rentetan sebagai permulaan dari mana kita memotong rentetan. Aksara dalam satu baris dinomborkan bermula dari sifar.

Fungsi khas

PHP menganggap tugas "memotong rentetan" (dalam erti kata yang luas) dalam konteks: dari kedua-dua belah pihak. Dari segi sejarah, ini ialah fungsi trim(), yang bertujuan untuk membuang aksara yang tidak penting:

  • ruang;
  • garis putus;
  • pemulangan pengangkutan;
  • jadual;
  • aksara nol

dari kedua-dua hujung talian. Ini adalah ciri yang sangat popular, terutamanya apabila bekerja dengan pangkalan data, pemilihan daripadanya sering mengandungi banyak ruang. Menggunakan fungsi explode() juga selalunya menghasilkan aksara tambahan pada permulaan dan penghujung rentetan.

Walau bagaimanapun, tidak semua pembangun menggunakan fungsi trim() sepenuhnya. Untuk tugasan "memotong rentetan", PHP mencadangkan menggunakan parameter kedua fungsi, di mana anda boleh menentukan sebarang set aksara yang harus dihapuskan daripada rentetan sumber.

Adalah penting bahawa aksara dialih keluar hanya dari awal dan akhir rentetan sumber. Adalah penting bahawa dengan memanipulasi topeng aksara yang akan dipadamkan dan urutan subtugasan.

  • Mula-mula, kami memotong rentetan PHP satu topeng pada satu masa.
  • Kemudian satu lagi.
  • Kemudian pada yang ketiga.

Hasil daripada urutan pilihan untuk menggunakan satu fungsi, kami memotong teks dalam PHP seperti yang diperlukan untuk menyelesaikan tugas.

Kaedah bukan standard

Jika kami tidak mengambil kira keseluruhan julat fungsi rentetan bahasa, pasangan fungsi explode()/implode() dan fungsi str_replace() membolehkan kami menyelesaikan masalah bukan standard bagi maklumat rentetan "memotong".

Hasil pertanyaan MySQL sentiasa formal dalam struktur maklumat yang dikembalikan, dan kandungan medan (elemen) hasil sentiasa ditentukan oleh sumber, iaitu, pembangun yang mereka pangkalan data.

Ini adalah contoh tertentu, tetapi ia betul-betul menjawab soalan: bagaimana untuk memotong baris dalam PHP apabila terdapat banyak baris. Fungsi trm() ialah fungsi tertentu, dan sejarahnya ditentukan oleh tugas apabila tidak ada banyak maklumat, dan tidak perlu memotong apa-apa selain daripada aksara yang tidak penting.

Hari ini maklumat beredar dalam jumlah yang besar dan memotong baris demi baris bukan sahaja tidak perlu, tetapi juga tidak rasional.

Membahagi kepada komponen juga merupakan pilihan, seperti memotong rentetan. PHP secara automatik akan menggunakan explode() untuk memotong satu teks besar kepada banyak baris yang diperlukan. Dengan menggunakan fungsi str_replace() - iaitu, menggantikan satu kejadian aksara dengan yang lain - anda boleh mencapai kesan yang sama.

Dinamik dan jumlah maklumat yang perlu diproses adalah, pertama sekali, penyelesaian yang mencukupi, dan bukan penggunaan satu fungsi khas.