10/10/2018, 13:18

Xóa khoảng trắng thừa trong chuỗi

giả sử mình có chuỗi "dien___________dan___tin_hoc";
kết quả phải lấy chuỗi "dien_dan_tin_hoc";
(kí tự "_" là biểu diễn cho khoảng trắng, vì mình không biết biểu diễn kí tự trắng trên bài viết mong bạn đọc thông cảm)
PHP có hỗ trợ hàm nào có chức năng như vấy không, mong các bạn chỉ giúp
The Old Man viết 15:21 ngày 10/10/2018
Gợi ý:

Nếu trong string có hai dấu cách thì replace hai dấu cách với 1 dấu cách
và loop test trở lại
tam_giang viết 15:32 ngày 10/10/2018
Không hiểu ý bạn nhưng trong html có ký hiệu cho khoảng trắng mà. Bạn coi thêm ở đây:
Code:
http://www.w3schools.com/HTML/html_entities.asp
faint viết 15:29 ngày 10/10/2018
Code:
<?php
$string = "dien      dan    tin   hoc";
$result = "";
$temp = split(" ",$string);
foreach ($temp as $i)
{
	if ($i=="")
	{
		continue;
	}
	else
	{
		$result = $result .$i." ";
	}
}
$result = trim($result);
echo "<br>'".$result."'";
?>
Đây là đoạn code mình viết, chạy tốt đấy. Bạn thử xem sao !
amida viết 15:27 ngày 10/10/2018
Duyệt thẳng trên string luôn chứ làm vậy chi cho mệt ^^

Gợi ý:
xét vị trí đầu tiên xuất hiện khoảng trắng, gọi là i. Ở phần tử thứ i, xét nếu phần tử i+1 cũng là khoảng trắng thì xóa nó đi.

Hoặc bạn làm theo cách bác TOM.
lighthousehn viết 15:21 ngày 10/10/2018
1 dòng là xong.
PHP Code:
while (strpos($string,"  ")) $string str_replace("  "," ",$string); 
quangdongst viết 15:31 ngày 10/10/2018
cảm ơn các bạn nha, vậy mà cả đêm mình suy nghĩ mãi mà không làm được. Đúng là mình còn gà thiệt
pcdinh viết 15:19 ngày 10/10/2018
Được gửi bởi quangdongst
giả sử mình có chuỗi "dien___________dan___tin_hoc";
kết quả phải lấy chuỗi "dien_dan_tin_hoc";
(kí tự "_" là biểu diễn cho khoảng trắng, vì mình không biết biểu diễn kí tự trắng trên bài viết mong bạn đọc thông cảm)
PHP có hỗ trợ hàm nào có chức năng như vấy không, mong các bạn chỉ giúp
$string = preg_replace('/\s+/', ' ', $string)
tandaica0612 viết 15:24 ngày 10/10/2018
Được gửi bởi pcdinh
$string = preg_replace('/\s+/', ' ', $string)
$string = preg_replace('/\s+/', '\s', $string)
hem biết thế này vẫn đúng hem hay là sai
pcdinh viết 15:27 ngày 10/10/2018
@tandaica0612

Cho chú một cái roi vào mông . Học đến năm thứ 3 rồi mà ko thèm phân biệt cái \s là một pattern. Nếu muốn thay pattern bằng chính string khớp với nó thì phải dùng back ref chứ
Bài liên quan
0