Hướng dẫn php remove junk characters from string - php loại bỏ các ký tự rác khỏi chuỗi

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi muốn hỏi làm thế nào để loại bỏ một ký tự đặc biệt khỏi một chuỗi (được trích xuất từ ​​một trang bị loại bỏ).

 4:30am

Tôi chỉ muốn có được thời gian để tôi đã thử để lọc nó bằng cách sử dụng điều này:

$str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>';

Nhưng nó không thay đổi: | Có giải pháp/cách tiếp cận nào không?

Hỏi ngày 27 tháng 12 năm 2012 lúc 9:08Dec 27, 2012 at 9:08

Regex của bạn không hợp lệ ...

$str = 'Â 4:30am'; $new_string = preg_replace("~[^a-z0-9:]~i", "", $str); echo '<pre>'.$new_string.'</pre>';

... và bạn quên ":" Trong Regex, vì vậy trong trường hợp của bạn, nó sẽ bị xóa.

Đã trả lời ngày 27 tháng 12 năm 2012 lúc 9:10Dec 27, 2012 at 9:10

GlavićglavićGlavić

41.8K13 Huy hiệu vàng74 Huy hiệu bạc107 Huy hiệu đồng13 gold badges74 silver badges107 bronze badges

0

Mẫu regex của bạn cần được đặt bởi các phân định. Mẫu hiện tại của bạn đang sử dụng [ và $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 0 làm DELIMITERS, điều mà rất có thể không phải là những gì bạn dự định làm.

preg_replace("/[^A-Za-z0-9]/", "", $str);

//pl.php.net/manual/en/regexp.reference.delimiters.php

Đã trả lời ngày 27 tháng 12 năm 2012 lúc 9:10Dec 27, 2012 at 9:10

GlavićglavićSupericy

41.8K13 Huy hiệu vàng74 Huy hiệu bạc107 Huy hiệu đồng1 gold badge20 silver badges25 bronze badges

1

Mẫu regex của bạn cần được đặt bởi các phân định. Mẫu hiện tại của bạn đang sử dụng [ và $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 0 làm DELIMITERS, điều mà rất có thể không phải là những gì bạn dự định làm.

$str = 'Â 4:30am'; $str = filter_var($str,FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_HIGH); echo $str ;

Supericysupericy

4:30am

5,8711 Huy hiệu vàng20 Huy hiệu bạc25 Huy hiệu đồngDec 27, 2012 at 9:20

Bạn có thể sử dụng $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 1Baba

Đầu ra28 gold badges164 silver badges215 bronze badges

0

Đã trả lời ngày 27 tháng 12 năm 2012 lúc 9:20

Babababa

92.7K28 Huy hiệu vàng164 Huy hiệu bạc215 Huy hiệu đồng

Sử dụng $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 2 nên sửa nó.Dec 27, 2012 at 9:11

Tham số đầu tiên của $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 3 là mẫu, được yêu cầu được bao quanh bởi một cái gì đó như $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 4 hoặc $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 5.Xiao Jia

Trong trường hợp của bạn, bạn đang sử dụng mẫu $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 6 trong đó [ và $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 0 được coi là người phân định mẫu. Vì vậy, mẫu thực tế đang được khớp trở thành $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 9, không phù hợp với đầu vào.1 gold badge29 silver badges47 bronze badges

Đã trả lời ngày 27 tháng 12 năm 2012 lúc 9:11

$str = 'Â 4:30am'; $time = preg_match('/(?P<time>\d?\d:\d\d(?:am|pm))/', $str, $match); var_dump($match);

Sử dụng $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 2 nên sửa nó.Dec 27, 2012 at 9:11

Tham số đầu tiên của $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 3 là mẫu, được yêu cầu được bao quanh bởi một cái gì đó như $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 4 hoặc $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 5.Sverri M. Olsen

Trong trường hợp của bạn, bạn đang sử dụng mẫu $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 6 trong đó [ và $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 0 được coi là người phân định mẫu. Vì vậy, mẫu thực tế đang được khớp trở thành $str = 'Â 4:30am'; $new_string = preg_replace("[^A-Za-z0-9]", "", $str); echo '<pre>'.$new_string.'</pre>'; 9, không phù hợp với đầu vào.3 gold badges35 silver badges51 bronze badges

Đã trả lời ngày 27 tháng 12 năm 2012 lúc 9:11

$new_string = preg_replace("^[A-Za-z0-9]", "", $str);

Xiao Jiaxiao JiaDec 27, 2012 at 9:12

4.1091 Huy hiệu vàng29 Huy hiệu bạc47 Huy hiệu đồngasgoth

Để có được thời gian:12 gold badges88 silver badges98 bronze badges

$str = 'Â 4:30am'; $new_string = preg_replace("^\W", "", $str); echo '<pre>'.$new_string.'</pre>';

Sverri M. Olsensverri M. OlsenDec 27, 2012 at 9:13

0

Làm thế nào để làm sạch chuỗi trong PHP?

Bạn có thể loại bỏ khoảng trắng dẫn đầu hoặc dấu vết bằng các hàm trim (), ltrim () và rtrim (): $ trimmed = trim (chuỗi [, charlist]);$ trimmed = ltrim (chuỗi [, Charlist]);$ trimmed = rtrim (chuỗi [, Charlist]);Trim () trả về một bản sao của chuỗi với khoảng trắng được loại bỏ từ đầu và cuối.remove leading or trailing whitespace with the trim( ) , ltrim( ) , and rtrim( ) functions: $trimmed = trim( string [, charlist ] ); $trimmed = ltrim( string [, charlist ] ); $trimmed = rtrim( string [, charlist ] ); trim( ) returns a copy of string with whitespace removed from the beginning and the end.

Làm thế nào tôi có thể nhận được các chữ cái từ chuỗi trong PHP?

$ result = preg_replace ("/[^a-za-z0-9]+/", "", $ s);Nếu định nghĩa của bạn về chữ và số của bạn bao gồm các chữ cái bằng tiếng nước ngoài và các tập lệnh lỗi thời thì bạn sẽ cần sử dụng các lớp ký tự Unicode.Hãy thử điều này để chỉ để lại a-z: $ result = preg_replace ("/[^a-z]+/", "", $ s); If your definition of alphanumeric includes letters in foreign languages and obsolete scripts then you will need to use the Unicode character classes. Try this to leave only A-Z: $result = preg_replace("/[^A-Z]+/", "", $s);

Chủ đề