Làm cách nào để thay thế dấu gạch chéo từ chuỗi trong PHP?

Bài tập chuỗi PHP. Xóa dấu gạch chéo ở cuối chuỗiCập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21. 50. 30 (UTC/GMT +8 giờ)

Chuỗi PHP. Bài tập-21 có lời giải

Viết tập lệnh PHP để xóa dấu gạch chéo ở cuối chuỗi

Chuỗi gốc. 'The quick brown fox jumps over the lazy dog///'

Trình bày bằng hình ảnh

Làm cách nào để thay thế dấu gạch chéo từ chuỗi trong PHP?

Giải pháp mẫu

Mã PHP



Đầu ra mẫu

The quick brown fox jumps over the lazy dog

Sơ đồ

Làm cách nào để thay thế dấu gạch chéo từ chuỗi trong PHP?

Trình soạn thảo mã PHP

Có một cách khác để giải quyết giải pháp này?

Trước. Viết tập lệnh PHP để xóa một phần của chuỗi
Kế tiếp. Viết tập lệnh PHP để lấy các ký tự sau '/' cuối cùng trong một url

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

PHP. Lời khuyên trong ngày

PHP. Làm cách nào để lặp lại hoặc in một mảng trong PHP?

foreach($results['data'] as $result) {
    echo $result['type'], '
'; }

Giới thiệu. https. //chút. ly/384HbVs

 



  • Xu hướng hàng tuần
  • Bài tập lập trình Java cơ bản
  • Truy vấn con SQL
  • Bài tập cơ sở dữ liệu Adventureworks
  • Bài tập cơ bản C# Sharp
  • SQL COUNT() với sự khác biệt
  • Bài tập chuỗi JavaScript
  • Xác thực biểu mẫu HTML JavaScript
  • Bài tập bộ sưu tập Java
  • hàm SQL COUNT()
  • Tham gia bên trong SQL
  • Hàm JavaScript Bài tập
  • Hướng dẫn Python
  • Bài tập mảng Python
  • Tham gia chéo SQL
  • Bài tập về mảng Sharp trong C#


Dấu gạch chéo ngược cần được loại bỏ một cách tẻ nhạt trong PHP, cả khi xuất hiện bên trong tập lệnh PHP của bạn và khi được sử dụng với preg_replace

2892 lượt xem

Làm cách nào để thay thế dấu gạch chéo từ chuỗi trong PHP?

Bởi. Jacob

Đã chỉnh sửa. 26-12-2020 18. 03

Gần đây tôi đã gặp một sự cố rất lạ khi dấu gạch chéo ngược theo nghĩa đen không hoạt động trong chuỗi PHP trong một số trường hợp, ngay cả khi sử dụng dấu nháy đơn. Điều này là do dấu gạch chéo ngược có ý nghĩa đặc biệt khi được sử dụng trong mã của tập lệnh PHP

Nếu dấu gạch chéo ngược nằm ở cuối một chuỗi được trích dẫn, dấu gạch chéo ngược cần được thoát. Vì lý do này, có lẽ tốt nhất là luôn thoát khỏi dấu gạch chéo ngược của bạn, vì nó sẽ tránh nhầm lẫn trong mã

Ví dụ: tôi đã tạo một biểu thức chính quy để thay thế cả dấu gạch chéo lên và dấu gạch chéo ngược từ đường dẫn tệp, bao gồm các dấu gạch chéo trùng lặp như "//", tuy nhiên, tôi vẫn gặp lỗi vì dấu gạch chéo ngược không được thoát đúng cách

Với preg_replace, dấu gạch chéo ngược cần được thoát kép

$str = 'c:\\\\this\\\\test\\\\';

echo preg_replace('#[/\\\\]+#', '/', $str);

Rõ ràng bạn cần thoát khỏi dấu gạch chéo ngược hai lần trong một biểu thức chính quy, do đó thoát kép "\\\\"

đầu ra là

c:/this/test/

Không thoát khỏi dấu gạch chéo ngược có thể dẫn đến lỗi như

Lỗi phân tích cú pháp PHP. lỗi cú pháp, kết thúc tệp không mong muốn trong dấu gạch chéo ngược. php trên dòng 5

Biểu thức chính quy và dấu gạch chéo ngược

Vấn đề với dấu gạch chéo ngược dường như có hai cấp độ đối với nó. Trước tiên, chúng ta phải thoát khỏi các dấu gạch chéo ngược được khai báo bên trong mã của các tập lệnh PHP của chúng ta. Thứ hai, chúng ta cũng sẽ cần thoát khỏi các dấu gạch chéo ngược theo nghĩa đen được sử dụng trong các biểu thức chính quy

Vấn đề với biểu thức chính quy tồn tại ở hai nơi — cả trong mẫu biểu thức chính quy và chuỗi thay thế

Điều này là do dấu gạch chéo ngược có ý nghĩa đặc biệt ở cả hai nơi

Khi thực hiện thao tác thay thế, chúng ta có thể sử dụng preg_quote cho mẫu, nhưng không thể sử dụng điều này cho chuỗi thay thế;

$replacement_id = 'REPLACEMENT_ID';

// Escape backslashes in PHP script (First level)
$unescaped_string = 'c:\\test\\testing\\some-file.txt';
// Escape backslashes in the replacement string (Second level)
$escaped_string = str_replace('\\', '\\\\', $unescaped_string);
$new_html = preg_replace('|{$replacement_id}|', $escaped_string, $html);

Lưu ý rằng điều này sẽ chuẩn bị chuỗi thay thế để sử dụng với preg_replace — nhưng trong hầu hết các trường hợp, bạn có thể chỉ cần sử dụng str_replace hoặc substr_replace thay thế

Thay thế một chuỗi trong một số HTML

Giả sử bạn muốn thay thế một chuỗi duy nhất trong một số mã HTML và bạn chỉ muốn thực hiện thay thế "thả vào" mà không sửa đổi chuỗi thay thế;

$html = '
REPLACEMENT_ID
'
; $replacement_id = 'REPLACEMENT_ID'; $replacement = '
c:\\test\\some-file.txt
'
; $html = str_replace($replacement_id, $replacement, $html); echo $html;

đầu ra

c:\test\some-file.txt

Tại sao sử dụng id thay thế?

Đôi khi bạn chỉ cần thực hiện thay thế thả xuống, nhưng tôi cũng nhận ra rằng hầu hết các bạn có thể sử dụng tham chiếu ngược với preg_replace;

Trong hướng dẫn này, tôi đang tập trung vào vấn đề gây ra bởi dấu gạch chéo ngược trong mẫu hoặc chuỗi chủ đề của bạn chứ không phải cách viết các mẫu đó. Thay thế thả xuống là một cách đơn giản để chứng minh vấn đề này

Để tìm hiểu cách viết các mẫu cơ bản để thay thế chuỗi, hãy xem hướng dẫn này. Cách thay thế các phần của chuỗi bằng str_replace và preg_replace

Làm cách nào để xóa dấu gạch chéo lên khỏi chuỗi trong PHP?

Hàm Stripeslashes() xóa các dấu gạch chéo ngược được thêm bởi hàm addlashes(). Mẹo. Chức năng này có thể được sử dụng để dọn sạch dữ liệu được lấy từ cơ sở dữ liệu hoặc từ biểu mẫu HTML.

Làm cách nào để thay thế dấu gạch chéo ngược bằng dấu gạch chéo ngược kép trong PHP?

$str = '\dada\dadda';

Làm cách nào để tìm dấu gạch chéo ngược trong chuỗi PHP?

Chuỗi trích dẫn đơn chỉ sử dụng chuỗi thoát cho một trích dẫn đơn hoặc dấu gạch chéo ngược. Dưới đây là một số trình tự thoát phổ biến cho chuỗi trích dẫn kép. \" cho một trích dẫn kép. \\ cho dấu gạch chéo ngược .

Bạn có thể sử dụng chức năng nào để thay thế dấu gạch chéo cho dấu gạch ngang trong danh sách ngày tháng?

Nếu ngày của bạn được định dạng bằng dấu gạch chéo lên (/), bạn sẽ nhập dấu gạch chéo lên vào CẢ HAI trường Tìm gì và Thay thế bằng. Nếu ngày của bạn được định dạng bằng dấu gạch ngang (-), thì hãy sử dụng dấu gạch ngang. Sau đó nhấp vào Thay thế tất cả . (Phím tắt cho Replace All là Alt + A. )