Hướng dẫn php escape single quote - dấu ngoặc kép thoát php

Tôi đang viết một số mã JavaScript sử dụng chuỗi được hiển thị bằng PHP. Làm thế nào tôi có thể thoát khỏi các trích dẫn đơn (và chỉ trích dẫn đơn) trong chuỗi PHP của tôi?


Hướng dẫn php escape single quote - dấu ngoặc kép thoát php

Đã hỏi ngày 7 tháng 6 năm 2011 lúc 17:26Jun 7, 2011 at 17:26

4

Rất đơn giản:

 '...'); ?>


6 Tuy nhiên, tôi đề nghị sử dụng chức năng JSON và
 '...'); ?>


7 vì nó sẽ đáng tin cậy hơn (ví dụ như báo giá các dòng mới):

 '...'); ?>


Justin

25.1K16 Huy hiệu vàng108 Huy hiệu bạc126 Huy hiệu đồng16 gold badges108 silver badges126 bronze badges

Đã trả lời ngày 7 tháng 6 năm 2011 lúc 17:30Jun 7, 2011 at 17:30

CrozincrozinCrozin

43.2K13 Huy hiệu vàng87 Huy hiệu bạc135 Huy hiệu đồng13 gold badges87 silver badges135 bronze badges

6

Nếu bạn muốn thoát khỏi các ký tự với

 '...'); ?>


8, bạn có
 '...'); ?>


9. Ví dụ: nếu bạn muốn thoát chỉ trích dẫn đơn lẻ như câu hỏi, bạn có thể làm:

echo addcslashes($value, "'");

Và nếu bạn muốn thoát

echo addcslashes($value, "'");
0,
echo addcslashes($value, "'");
1,
 '...'); ?>


8 và
echo addcslashes($value, "'");
3 (byte null), bạn có thể sử dụng
echo addcslashes($value, "'");
4:

echo addslashes($value);

Đã trả lời ngày 3 tháng 2 năm 2017 lúc 10:31Feb 3, 2017 at 10:31

PhoneixsphoneixsPhoneixS

10k5 huy hiệu vàng54 Huy hiệu bạc70 Huy hiệu đồng5 gold badges54 silver badges70 bronze badges

1

str_replace("'", "\'", $mystringWithSingleQuotes);

Đã trả lời ngày 7 tháng 6 năm 2011 lúc 17:29Jun 7, 2011 at 17:29

JulianjulianJulian

8.4788 Huy hiệu vàng53 Huy hiệu bạc89 Huy hiệu Đồng8 gold badges53 silver badges89 bronze badges

Trong một số trường hợp, tôi chỉ chuyển đổi nó thành các thực thể:

                        // i.e.,  $x= ABC\DEFGH'IJKL
$x = str_ireplace("'",  "'", $x);
$x = str_ireplace("\\", "\", $x);
$x = str_ireplace('"',  """, $x);

Trên trang HTML, đầu ra trực quan giống nhau:

ABC\DEFGH'IJKL

Tuy nhiên, nó được vệ sinh trong nguồn.

Đã trả lời ngày 2 tháng 4 năm 2015 lúc 20:36Apr 2, 2015 at 20:36

T.ToduaT.ToduaT.Todua

50K19 Huy hiệu vàng216 Huy hiệu bạc213 Huy hiệu Đồng19 gold badges216 silver badges213 bronze badges

Sử dụng hàm gốc

echo addcslashes($value, "'");
5. Nó sẽ thoát khỏi tất cả các nhân vật đặc biệt. Nếu bạn muốn thoát khỏi báo giá cụ thể, hãy sử dụng với
echo addcslashes($value, "'");
6 hoặc
echo addcslashes($value, "'");
7. Đây là ví dụ:

$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "
"; echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes echo "
"; echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes

Đầu ra sẽ như thế này:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'

Đọc thêm trong hàm PHP htmlspecialchars ()

Đã trả lời ngày 6 tháng 4 năm 2018 lúc 6:43Apr 6, 2018 at 6:43

Nishad Upnishad lênNishad Up

3.1971 Huy hiệu vàng26 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge26 silver badges30 bronze badges

Để chỉ thay thế các trích dẫn đơn, hãy sử dụng câu lệnh đơn giản này:

$string = str_replace("'", "\\'", $string);

Đã trả lời ngày 7 tháng 6 năm 2011 lúc 17:29Jun 7, 2011 at 17:29

0

Julianjulian

 '...'); ?>


0

8.4788 Huy hiệu vàng53 Huy hiệu bạc89 Huy hiệu ĐồngJan 21, 2018 at 23:03

Trong một số trường hợp, tôi chỉ chuyển đổi nó thành các thực thể:Junior

Trên trang HTML, đầu ra trực quan giống nhau:26 gold badges93 silver badges199 bronze badges

Tuy nhiên, nó được vệ sinh trong nguồn.

Đã trả lời ngày 2 tháng 4 năm 2015 lúc 20:36

50K19 Huy hiệu vàng216 Huy hiệu bạc213 Huy hiệu Đồng

Solution:

 '...'); ?>


1

Solve:

  • Sử dụng hàm gốc
    echo addcslashes($value, "'");
    
    5. Nó sẽ thoát khỏi tất cả các nhân vật đặc biệt. Nếu bạn muốn thoát khỏi báo giá cụ thể, hãy sử dụng với
    echo addcslashes($value, "'");
    
    6 hoặc
    echo addcslashes($value, "'");
    
    7. Đây là ví dụ:

Đầu ra sẽ như thế này:

Đọc thêm trong hàm PHP htmlspecialchars ()May 9, 2014 at 10:19

Đã trả lời ngày 6 tháng 4 năm 2018 lúc 6:43

Nishad Upnishad lên

3.1971 Huy hiệu vàng26 Huy hiệu bạc 30 Huy hiệu Đồng

 '...'); ?>


2

Để chỉ thay thế các trích dẫn đơn, hãy sử dụng câu lệnh đơn giản này:

 '...'); ?>


3

Bạn có thể sử dụng chức năng AddCslashes để hoàn thành việc này như vậy:

Đã trả lời ngày 21 tháng 1 năm 2018 lúc 23:03

JuniorjuniorNov 19, 2015 at 15:15

11K26 Huy hiệu vàng93 Huy hiệu bạc199 Huy hiệu đồngBasil Musa

Sau một thời gian dài chiến đấu với vấn đề này, tôi nghĩ rằng tôi đã tìm thấy một giải pháp tốt hơn.6 gold badges59 silver badges61 bronze badges

0

Sự kết hợp của hai chức năng giúp có thể thoát một chuỗi để sử dụng như HTML.

 '...'); ?>


4

Một, để thoát khỏi báo giá kép nếu bạn sử dụng chuỗi bên trong cuộc gọi hàm JavaScript; và một thứ hai để thoát khỏi trích dẫn duy nhất, tránh những trích dẫn đơn giản đi xung quanh cuộc tranh luận.

một dòng PHP được tạo để gọi chức năng JavaScript nhưMay 15, 2013 at 2:20

echo 'onclick = "javascript_function (\' '. mysql_real_escape_string (htmlspecialchars ($ string))"

 '...'); ?>


5

Đã trả lời ngày 9 tháng 5 năm 2014 lúc 10:19

Tôi đã viết chức năng sau đây. Nó thay thế những điều sau:

Trích dẫn đơn ['] với một dấu gạch chéo và một trích dẫn duy nhất [\'].

Backslash [\] với hai dấu gạch chéo ngược [\\]

Bạn có thể sửa đổi nó để thêm hoặc xóa thay thế ký tự trong mảng $ thay thế. Ví dụ: để thay thế \ r \ n, nó trở thành "\ r \ n" => "\ r \ n" và "\ n" => "\ n".Feb 12, 2013 at 14:48

Tính năng gọn gàng về STRTR là nó sẽ thích thay thế dài.

Ví dụ, "Cool \ r \ nfeature" sẽ thoát ra \ r \ n thay vì thoát \ n dọc theo.backslash in single-quoted strings, and double quotes in double-quoted strings.

Đã trả lời ngày 19 tháng 11 năm 2015 lúc 15:15

Basil Musabasil MusaYou can use it when you want the string to be exactly as it is written.

7.6036 Huy hiệu vàng59 Huy hiệu bạc61 Huy hiệu Đồng

Đây là cách tôi đã làm điều đó. Ngớ ngẩn, nhưng đơn giản.single quote to define a constant string, like 'a' , 'my name' , 'abc xyz' , while using double quote to define a string contain identifier like "a $b $c $d" . echo "my $a"; This is true for other used of string.

Làm thế nào để bạn xóa các trích dẫn đơn từ một chuỗi?

thay thế () để loại bỏ các trích dẫn đơn từ một chuỗi.Gọi str.thay thế (cũ, mới) bằng cũ là "'" và mới là "" để xóa tất cả các trích dẫn đơn từ chuỗi.replace(old, new) with old as "'" and new as "" to remove all single quotes from the string.