Hướng dẫn php strip spaces from variable - php dải không gian từ biến

Một biểu thức chính quy không tính đến các ký tự UTF-8 theo mặc định. \s Meta-saracter chỉ chiếm bộ Latin ban đầu. Do đó, lệnh sau chỉ loại bỏ các tab, khoảng trắng, trả về vận chuyển và dòng mới

// //stackoverflow.com/a/1279798/54964
$str=preg_replace['/\s+/', '', $str];

Với UTF-8 trở thành chủ đạo, biểu thức này sẽ thường xuyên thất bại hơn khi đạt đến các ký tự UTF-8 mới, để lại không gian trắng phía sau mà \s không thể tính đến.

Để đối phó với các loại không gian trắng mới được giới thiệu trong Unicode/UTF-8, một chuỗi rộng hơn được yêu cầu để phù hợp và loại bỏ không gian trắng hiện đại.

Bởi vì các biểu thức thông thường theo mặc định không nhận ra các ký tự đa byte, chỉ có thể sử dụng chuỗi meta được phân định để xác định chúng, để ngăn các phân đoạn byte bị thay đổi trong các ký tự UTF-8 khác [\x80 trong bộ Quad có thể thay thế tất cả -Bytes trong trích dẫn thông minh]

$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];

Điều này chiếm và loại bỏ các tab, newlines, tab dọc, formfeed, trả về vận chuyển, không gian và ngoài ra từ đây:

NEXTLINE, không gian không phá vỡ, phân tách nguyên âm Mông Cổ, [EN Quad, Em Quad, EN Space, EM Space, không gian ba trên Per-EM, không gian bốn trên Per-EM, không gian sáu trên mỗi lần , không gian mỏng, không gian tóc, không gian chiều rộng bằng không, không có chiều rộng không joiner, máy nối không rộng bằng không], bộ tách đường, phân tách đoạn văn, không gian không phá vỡ hẹp, không gian toán học trung bình, người tham gia từ, không gian biểu tượng và không gian không chiều rộng không Phá vỡ không gian.

Nhiều trong số các tệp XML này bị tàn phá trong các tệp XML khi xuất từ ​​các công cụ hoặc trang web tự động làm hỏng các tìm kiếm, nhận dạng và có thể được dán vào mã nguồn PHP khiến trình phân tích cú pháp chuyển sang lệnh tiếp theo [đoạn phân tách đoạn và dòng] mã sẽ được bỏ qua dẫn đến các lỗi không thể giải thích được, không giải thích được mà chúng tôi đã bắt đầu gọi là "các bệnh truyền qua văn bản"

[Không an toàn để sao chép và dán từ web nữa. Sử dụng máy quét ký tự để bảo vệ mã của bạn. cười lớn]

Chủ đề: PHP / mysqlprev | Tiếp theoPrev|Next

Trả lời: Sử dụng chức năng Php ____10

Bạn có thể chỉ cần sử dụng chức năng PHP

$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
0 để tước hoặc xóa tất cả các khoảng trống bên trong một chuỗi.

Chúng ta hãy xem ví dụ sau để xem nó thực sự hoạt động như thế nào:

Tuy nhiên, ví dụ trên sẽ chỉ loại bỏ không gian. Nếu bạn muốn xóa tất cả các không gian trắng bao gồm các tab, newlines, v.v., bạn có thể sử dụng chức năng

$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
2 thực hiện tìm kiếm và thay thế biểu thức thông thường, như đã được trình bày trong ví dụ sau:

Trong ví dụ trên

$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
3 đại diện cho ký tự tab, trong khi
$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
4 đại diện cho ký tự dòng mới.

Để tìm hiểu thêm về biểu thức chính quy, hãy xem hướng dẫn về các biểu thức thông thường PHP.

Câu hỏi thường gặp liên quan

Dưới đây là một số Câu hỏi thường gặp liên quan đến chủ đề này:

  • Cách trích xuất chuỗi con từ một chuỗi trong PHP
  • Cách kết hợp hai chuỗi trong PHP
  • Cách chuyển đổi chuỗi thành chữ hoa trong PHP

[Php 4, Php 5, Php 7, Php 8]

Cắt - dải trắng [hoặc các ký tự khác] từ đầu và cuối chuỗiStrip whitespace [or other characters] from the beginning and end of a string

Sự mô tả

Trim [Chuỗi

$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
5, Chuỗi
$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
6 = "\ n \ r \ t \ v \ x00"]: Chuỗi
[string
$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
5
, string
$cleanedstr = preg_replace[
    "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
    "_",
    $str
];
6 = " \n\r\t\v\x00"
]: string

  • "" [ASCII
    $cleanedstr = preg_replace[
        "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
        "_",
        $str
    ];
    
    7 [
    $cleanedstr = preg_replace[
        "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
        "_",
        $str
    ];
    
    8]], một không gian thông thường.
  • "\ t" [ASCII
    $cleanedstr = preg_replace[
        "/[\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf]+/",
        "_",
        $str
    ];
    
    9 [
    0]], một tab.
  • "\ n" [ASCII
    1 [
    2]], một dòng mới [nguồn cấp dữ liệu].
  • "\ r" [ASCII
    3 [
    4]], trả lại vận chuyển.
  • "\ 0" [ASCII
    5 [
    6]], ________ 27-byte.
  • "\ V" [ASCII
    8 [
    9]], một tab dọc.

Thông số

0

Chuỗi sẽ được cắt tỉa.string that will be trimmed.

1

Tùy chọn, các ký tự bị tước cũng có thể được chỉ định bằng tham số

1. Chỉ cần liệt kê tất cả các ký tự mà bạn muốn bị tước. Với
3, bạn có thể chỉ định một loạt các ký tự.

Trả về giá trị

Chuỗi được cắt.

Ví dụ

Ví dụ #1 Ví dụ sử dụng của Trim []trim[]

4

5

6

Ví dụ trên sẽ xuất ra:

string[32] "        These are a few words :] ...  "
string[16] "    Example string
"
string[11] "Hello World"

string[28] "These are a few words :] ..."
string[24] "These are a few words :]"
string[5] "o Wor"
string[9] "ello Worl"
string[14] "Example string"

Ví dụ #2 Các giá trị mảng cắt bằng trang trí []trim[]

7

Ví dụ trên sẽ xuất ra:

array[3] {
  [0]=>
  string[5] "apple"
  [1]=>
  string[7] "banana "
  [2]=>
  string[11] " cranberry "
}
array[3] {
  [0]=>
  string[5] "apple"
  [1]=>
  string[6] "banana"
  [2]=>
  string[9] "cranberry"
}

Ví dụ #2 Các giá trị mảng cắt bằng trang trí []

Ghi chú: Possible gotcha: removing middle characters

Lưu ý: Có thể Gotcha: Xóa các ký tự giữatrim[] trims characters from the beginning and end of a string, it may be confusing when characters are [or are not] removed from the middle.

8 removes both 'a' and 'b' because it trims 'a' thus moving 'b' to the beginning to also be trimmed. So, this is why it "works" whereas
9 seemingly does not.

Bởi vì Trim [] cắt các ký tự từ đầu và cuối chuỗi, nó có thể gây nhầm lẫn khi các ký tự [hoặc không] bị xóa khỏi giữa.
8 loại bỏ cả 'A' và 'B' vì nó cắt 'do' di chuyển 'B' đến đầu cũng được cắt tỉa. Vì vậy, đây là lý do tại sao nó "hoạt động" trong khi
9 dường như không.

  • Xem thêm
  • LTRIM [] - Dải khoảng trắng [hoặc các ký tự khác] từ đầu chuỗi
  • rtrim [] - dải trắng [hoặc các ký tự khác] từ cuối chuỗi

str_replace [] - Thay thế tất cả các lần xuất hiện của chuỗi tìm kiếm bằng chuỗi thay thế

Làm cách nào để cắt một không gian trong PHP?

Hàm Trim [] sẽ loại bỏ khoảng trắng và các ký tự được xác định trước khác từ cả hai phía của chuỗi. Các hàm liên quan: LTRIM [] - Loại bỏ khoảng trắng hoặc các ký tự được xác định trước khác khỏi phía bên trái của chuỗi. RTRIM [] - Loại bỏ khoảng trắng hoặc các ký tự được xác định trước khác khỏi phía bên phải của chuỗi.. Related functions: ltrim[] - Removes whitespace or other predefined characters from the left side of a string. rtrim[] - Removes whitespace or other predefined characters from the right side of a string.

Làm cách nào để loại bỏ các không gian bổ sung khỏi một chuỗi?

Nếu bạn chỉ xử lý khoảng trắng dư thừa ở đầu hoặc cuối chuỗi, bạn có thể sử dụng Trim [], ltrim [] hoặc rtrim [] để loại bỏ nó. Nếu bạn đang xử lý các không gian bổ sung trong một chuỗi, hãy xem xét một preg_replace của nhiều khoảng trắng ""* với một khoảng trắng duy nhất "".use trim[] , ltrim[] or rtrim[] to remove it. If you are dealing with extra spaces within a string consider a preg_replace of multiple whitespaces " "* with a single whitespace " " .

Làm thế nào để bạn tước khoảng trắng hoặc các ký tự khác từ đầu và cuối chuỗi?

Sử dụng phương thức .Strip [] để loại bỏ khoảng trắng và các ký tự từ đầu và phần cuối của chuỗi.Sử dụng .Phương thức lStrip [] để loại bỏ khoảng trắng và ký tự chỉ từ đầu chuỗi. strip[] method to remove whitespace and characters from the beginning and the end of a string. Use the . lstrip[] method to remove whitespace and characters only from the beginning of a string.

Whitespace trong PHP là gì?

Một khoảng trắng là bất kỳ nhân vật nào biểu hiện làm không gian, đó là: một nhân vật không gian.Một ký tự tab.Một nhân vật trở lại vận chuyển.Một nhân vật dòng mới.any character that renders as a space, that is: A space character. A tab character. A carriage return character. A new line character.

Bài Viết Liên Quan

Chủ Đề