tek4

Xử lý chuỗi trong PHP

by - September. 21, 2021
Kiến thức
Học
<p>Trong b&agrave;i trước, ta đ&atilde; t&igrave;m hiểu về kh&aacute;i niệm chuỗi k&yacute; tự. Trong b&agrave;i viết n&agrave;y, ta sẽ c&ugrave;ng xem x&eacute;t c&aacute;c h&agrave;m xử l&yacute; chuỗi trong PHP c&ugrave;ng với v&iacute; dụ dẫn chứng.</p> <h1>C&aacute;c h&agrave;m xử l&yacute; chuỗi trong PHP</h1> <h2>1. H&agrave;m addcslashes()</h2> <p>H&agrave;m addcslashes() được sử dụng để trả về một chuỗi c&oacute; dấu gạch ch&eacute;o ngược ph&iacute;a trước c&aacute;c k&yacute; tự được chỉ định.</p> <p><strong><span style="background-color: #ffff00;">Ch&uacute; &yacute;: H&agrave;m addcslashes() c&oacute; ph&acirc;n biệt chữ hoa chữ thường.</span></strong></p> <p><strong><span style="background-color: #ffff00;">Ch&uacute; &yacute;: N&ecirc;n ch&uacute; &yacute; khi sử dụng h&agrave;m addcslashes() với gi&aacute; trị 0 (NULL), r (xuống d&ograve;ng), n (d&ograve;ng mới), t (tab) v&agrave; v (tab dọc). Trong PHP, \ 0, \ r, \ n, \ t, \ f v&agrave; \ v l&agrave; c&aacute;c chuỗi escape đ&atilde; được định nghĩa trước.</span></strong></p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">addcslashes(chuỗi k&yacute; tự, k&yacute; tự m&agrave; dấu gạch ch&eacute;o được th&ecirc;m trước n&oacute;)</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $a = addcslashes("Xin men chao cac ban!","m"); echo($a); ?&gt;</pre> <p>Kết quả:</p> <pre>Xin \men chao cac ban!</pre> <h2>2. H&agrave;m addslashes()</h2> <p>H&agrave;m addslashes() trả về một chuỗi c&oacute; dấu gạch ch&eacute;o (\) ph&iacute;a trước c&aacute;c k&yacute; tự được định nghĩa trước. C&aacute;c k&yacute; tự được định nghĩa trước l&agrave;:</p> <ul> <li>Dấu nh&aacute;y đơn (')</li> <li>dấu ngoặc k&eacute;p (")</li> <li>dấu gạch ch&eacute;o ngược (\)</li> <li>NULL</li> </ul> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">addslashes(chuỗi k&yacute; tự)</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $a = addslashes("Anh ay noi la: 'anh ay ten la Nam"); echo($a); ?&gt;</pre> <p>Kết quả:</p> <pre>Anh ay noi la: \'anh ay ten la Nam\'</pre> <h2>3. H&agrave;m trim()</h2> <p>H&agrave;m trim() loại bỏ c&aacute;c khoảng trắng v&agrave; c&aacute;c k&yacute; tự được x&aacute;c định trước từ cả hai ph&iacute;a của một chuỗi.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">trim(chuỗi k&yacute; tự, danh s&aacute;ch c&aacute;c k&yacute; tự cần bỏ)</pre> <p>Trong đ&oacute;, tham số thứ 1 l&agrave; bắt buộc phải được truyền gi&aacute; trị v&agrave; tham số thứ 2 l&agrave; kh&ocirc;ng bắt buộc. Chỉ định c&aacute;c k&yacute; tự cần x&oacute;a khỏi chuỗi. Nếu kh&ocirc;ng truyền tham số n&agrave;y, tất cả c&aacute;c k&yacute; tự sau sẽ được x&oacute;a:</p> <ul> <li>"\0" - NULL</li> <li>"\t" - Một khoảng trắng tab</li> <li>"\n" - D&ograve;ng mới</li> <li>"\x0B" - Tab dọc</li> <li>"\r" - Dấu xuống d&ograve;ng</li> <li>" " - Khoảng trắng th&ocirc;ng thường</li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $a = "!!Xin chao!!"; echo trim($a,"!Xo!"); ?&gt;</pre> <p>Trong đoạn m&atilde; tr&ecirc;n, h&agrave;m trim() sẽ thực hiện x&oacute;a c&aacute;c k&yacute; tự ở cả 2 b&ecirc;n của chuỗi k&yacute; tự lưu trong biến $a. &ldquo;!X&rdquo; trong &ldquo;!!Xin&rdquo; v&agrave; &ldquo;o!&rdquo; trong &ldquo;chao!!&rdquo;</p> <h2>4. H&agrave;m substr()</h2> <p>H&agrave;m substr() sẽ trả về một phần của chuỗi k&yacute; tự được x&aacute;c định trước.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">substr(chuỗi k&yacute; tự, vị tr&iacute; bắt đầu, độ d&agrave;i)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Tham số đầu ti&ecirc;n, chuỗi k&yacute; tự l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ hai, v&iacute; trị bắt đầu l&agrave; bắt buộc. Chỉ định nơi bắt đầu trong chuỗi: <ul> <li>Gi&aacute; trị dương - Bắt đầu ở một vị tr&iacute; được chỉ định trong chuỗi.</li> <li>Gi&aacute; trị &acirc;m - Bắt đầu ở một vị tr&iacute; được chỉ định t&iacute;nh từ cuối chuỗi.</li> <li>0 - Bắt đầu từ k&yacute; tự đầu ti&ecirc;n trong chuỗi.</li> </ul> </li> <li>Tham số thứ ba, độ d&agrave;i l&agrave; kh&ocirc;ng bắt buộc. Chỉ định độ d&agrave;i của chuỗi trả về. Mặc định l&agrave; tất cả chuỗi k&yacute; tự. <ul> <li>Gi&aacute; trị dương - Độ d&agrave;i được trả về từ vị tr&iacute; bắt đầu.</li> <li>Gi&aacute; trị &acirc;m - Độ d&agrave;i được trả về bắt đầu từ cuối chuỗi.</li> <li>0, NULL hoặc FALSE - Trả về một chuỗi trống rỗng.</li> </ul> </li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo substr("Xin chao",3)."\r\n"; echo substr("Xin chao",-2)."\r\n"; ?&gt;</pre> <p>Kết quả:</p> <pre>chao ao</pre> <h2>5. H&agrave;m strtoupper()</h2> <p>H&agrave;m strtoupper() chuyển đổi một chuỗi k&yacute; tự th&agrave;nh chữ in hoa.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">strtoupper(chuỗi k&yacute; tự)</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo strtoupper("Xin chao"); ?&gt;</pre> <p>Kết quả:</p> <pre>XIN CHAO</pre> <h2>6. H&agrave;m strtolower()</h2> <p>Ngược lại so với h&agrave;m strtoupper(), h&agrave;m strtolower() được sử dụng để chuyển đổi một chuỗi k&yacute; tự th&agrave;nh chữ thường.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">strtolower(chuỗi k&yacute; tự)</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo strtolower("XIN chao"); ?&gt;</pre> <p>Kết quả:</p> <pre>xin chao</pre> <h2>7. H&agrave;m strpos()</h2> <p>H&agrave;m strpos() t&igrave;m vị tr&iacute; xuất hiện đầu ti&ecirc;n của một chuỗi b&ecirc;n trong một chuỗi kh&aacute;c.</p> <p><strong><span style="background-color: #ffff00;">Ch&uacute; &yacute;: H&agrave;m strpos() c&oacute; ph&acirc;n biệt chữ hoa v&agrave; chữ thường.</span></strong></p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">strpos(chuỗi k&yacute; tự, từ cần t&igrave;m, vị tr&iacute; bắt đầu t&igrave;m)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Tham số đầu ti&ecirc;n, chuỗi k&yacute; tự l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ hai, từ cần t&igrave;m l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ ba, vị trị bắt đầu t&igrave;m l&agrave; t&ugrave;y chọn. N&oacute; chỉ định nơi bắt đầu t&igrave;m kiếm. Nếu l&agrave; một số &acirc;m, n&oacute; được t&iacute;nh từ cuối chuỗi.</li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo strpos("Xin chao","in"); ?&gt;</pre> <p>Kết quả:</p> <pre>1</pre> <h2>8. H&agrave;m strncmp()</h2> <p>H&agrave;m strncmp() được sử dụng nhằm thực hiện so s&aacute;nh hai chuỗi.</p> <p><strong><span style="background-color: #ffff00;">Ch&uacute; &yacute;: H&agrave;m strncmp() c&oacute; ph&acirc;n biệt chữ hoa v&agrave; chữ thường.</span></strong></p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">strncmp(chuỗi k&yacute; tự 1, chuỗi k&yacute; tự 2, độ d&agrave;i)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Tham số thứ nhất, chuỗi k&yacute; tự 1 l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ hai, chuỗi k&yacute; tự 2 l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số cuối c&ugrave;ng, độ d&agrave;i l&agrave; bắt buộc, n&oacute; được sử dụng nhằm chỉ định số k&yacute; tự từ mỗi chuỗi sẽ được sử dụng trong việc so s&aacute;nh.</li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo strncmp("Xin chao cac ban!","Xin chao cac ban!!",4); ?&gt;</pre> <p>Kết quả:</p> <pre>0</pre> <h2>9. H&agrave;m strlen()</h2> <p>H&agrave;m strlen() được sử dụng để trả về độ d&agrave;i của một chuỗi k&yacute; tự.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">strlen(chuỗi k&yacute; tự)</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo strlen("Xin chao cac ban!"); ?&gt;</pre> <p>Kết quả:</p> <pre>17</pre> <h2>10. H&agrave;m str_split()</h2> <p>H&agrave;m str_split() được sử dụng để chia một chuỗi th&agrave;nh một mảng.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">str_split(chuỗi k&yacute; tự, độ d&agrave;i)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Tham số thứ nhất, chuỗi k&yacute; tự l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số độ d&agrave;i l&agrave; t&ugrave;y chọn, được sử dụng để x&aacute;c định độ d&agrave;i của mỗi phần tử trong mảng. Mặc định gi&aacute; trị sẽ l&agrave; 1.</li> <li>Nếu độ d&agrave;i nhỏ hơn 1, h&agrave;m str_split() sẽ trả về gi&aacute; trị false. Nếu độ d&agrave;i lớn hơn độ d&agrave;i của chuỗi, to&agrave;n bộ chuỗi sẽ được trả về ở dưới dạng l&agrave; phần tử duy nhất của mảng.</li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php print_r(str_split("Xin men chao ban!")); ?&gt;</pre> <p>Kết quả:</p> <pre>Array ( [0] =&gt; X [1] =&gt; i [2] =&gt; n [3] =&gt; [4] =&gt; m [5] =&gt; e [6] =&gt; n [7] =&gt; [8] =&gt; c [9] =&gt; h [10] =&gt; a [11] =&gt; o [12] =&gt; [13] =&gt; b [14] =&gt; a [15] =&gt; n [16] =&gt; ! )</pre> <h2>11. H&agrave;m str_replace()</h2> <p>H&agrave;m str_replace() được sử dụng để thay thế một số k&yacute; tự bằng một số k&yacute; tự kh&aacute;c trong một chuỗi.</p> <p>H&agrave;m n&agrave;y hoạt động theo c&aacute;c quy tắc sau:</p> <ul> <li>Nếu chuỗi được t&igrave;m kiếm l&agrave; một mảng, n&oacute; trả về một mảng.</li> <li>Nếu chuỗi được t&igrave;m kiếm l&agrave; một mảng, việc t&igrave;m kiếm v&agrave; thay thế được thực hiện với mọi phần tử của mảng.</li> <li>Nếu cả chuỗi t&igrave;m v&agrave; chuỗi thay thế đều l&agrave; mảng, v&agrave; chuỗi thay thế c&oacute; &iacute;t phần tử hơn chuỗi t&igrave;m kiếm, th&igrave; một chuỗi trống rỗng sẽ được l&agrave;m chuỗi thay thế.</li> <li>Nếu chuỗi t&igrave;m kiếm l&agrave; một mảng v&agrave; chuỗi thay thế l&agrave; một chuỗi k&yacute; tự, th&igrave; chuỗi thay thế sẽ được sử dụng cho mọi gi&aacute; trị t&igrave;m kiếm.</li> </ul> <p><strong><span style="background-color: #ffff00;">Ch&uacute; &yacute;: H&agrave;m n&agrave;y c&oacute; ph&acirc;n biệt chữ hoa v&agrave; chữ thường.</span></strong></p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">str_replace(chuỗi cần t&igrave;m kiếm, chuỗi thay thế , chuỗi k&yacute; tự, biến đếm cho số lần chuỗi được thay thế)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Tham số thứ nhất, chuỗi cần t&igrave;m kiếm l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ hai, chuỗi thay thế l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ ba, chuỗi k&yacute; tự l&agrave; bắt buộc phải được truyền gi&aacute; trị.</li> <li>Tham số thứ tư, biến đếm cho số lần chuỗi được thay thế.</li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php echo str_replace("!"," can ban!","Lap trinh PHP!"); ?&gt;</pre> <p>Kết quả:</p> <p>Lap trinh PHP can ban!</p> <h2>12. H&agrave;m join()</h2> <p>H&agrave;m join() được sử dụng để trả về một chuỗi k&yacute; tự từ c&aacute;c phần tử của một mảng.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">join(dấu ph&acirc;n t&aacute;ch, mảng)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Tham số thứ nhất l&agrave; dấu ph&acirc;n t&aacute;ch, tham số n&agrave;y l&agrave; kh&ocirc;ng bắt buộc. Tham số n&agrave;y được sử dụng để ph&acirc;n t&aacute;ch giữa c&aacute;c phần tử của mảng.</li> <li>Tham số thứ hai l&agrave; mảng, tham số n&agrave;y l&agrave; bắt buộc phải được truyền một mảng để trả về một chuỗi k&yacute; tự.</li> </ul> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $chuoi_ky_tu = array('Chung ta cung tim','hieu ve','lap trinh PHP','can ban!'); echo join(" ",$chuoi_ky_tu)."\r\n"; echo join(",",$chuoi_ky_tu)."\r\n"; ?&gt;</pre> <p>Kết quả:</p> <pre>Chung ta cung tim hieu ve lap trinh PHP can ban! Chung ta cung tim,hieu ve,lap trinh PHP,can ban!</pre> <p>Tr&ecirc;n đ&acirc;y l&agrave; kh&aacute;i niệm v&agrave; v&iacute; dụ cơ bản về xử l&yacute; chuỗi trong PHP. Hy vọng mọi người c&oacute; thể &aacute;p dụng v&agrave;o trong chương tr&igrave;nh của m&igrave;nh. Mọi người h&atilde;y tiếp tục theo d&otilde;i c&aacute;c b&agrave;i tiếp theo v&agrave; cập nhật c&aacute;c b&agrave;i mới nhất tr&ecirc;n <a href="http://tek4.vn">tek4</a> nh&eacute;!</p> <p>P/s: Cảm ơn mọi người!</p>