Hướng dẫn dùng apostrophe patterns trong PHP

Tôi đã vật lộn với một vấn đề nhỏ trong một thời gian. Nó đã ở đó trong nhiều năm nhưng nó chỉ là một vấn đề khó chịu và không nghiêm trọng, và tôi chỉ làm việc xung quanh nó. Nhưng bây giờ tôi muốn tìm hiểu xem có ai có thể giúp tôi không. Tôi đã thực hiện một số google nhưng không thành công.

Nội dung chính

  • Chuỗi trong PHP là gì?
  • Dấu nháy đơn
  • Dấu nháy kép
  • Cú pháp heredoc
  • Cú pháp newdoc
  • Ví dụ về chuỗi trong PHP
  • Toán tử nối chuỗi trong PHP
  • Sử dụng hàm strlen() trong PHP
  • Sử dụng hàm strpos() trong PHP

Nội dung chính

  • Chuỗi trong PHP là gì?
  • Dấu nháy đơn
  • Dấu nháy kép
  • Cú pháp heredoc
  • Cú pháp newdoc
  • Ví dụ về chuỗi trong PHP
  • Toán tử nối chuỗi trong PHP
  • Sử dụng hàm strlen() trong PHP
  • Sử dụng hàm strpos() trong PHP

Nội dung chính

  • Chuỗi trong PHP là gì?
  • Dấu nháy đơn
  • Dấu nháy kép
  • Cú pháp heredoc
  • Cú pháp newdoc
  • Ví dụ về chuỗi trong PHP
  • Toán tử nối chuỗi trong PHP
  • Sử dụng hàm strlen() trong PHP
  • Sử dụng hàm strpos() trong PHP

Nếu tôi thực hiện một bài viết mẫu từ văn bản html trong tệp php như thế này:

và tất nhiên có một nút gửi và như vậy.

Giá trị là vấn đề: google's site Giá trị của textarea có cả "(Dấu ngoặc kép) và '(Dấu nháy đơn).

Để lưu cái này trong một cơ sở dữ liệu mysql_dat tôi làm điều này:

$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".$_POST['text']."') ") or die(mysql_error());

Và bây giờ tôi nhận được lỗi mysql:

Bạn có một lỗi trong cú pháp SQL của bạn; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để biết đúng cú pháp để sử dụng gần trang web '' ở dòng 1

I have been struggling with a small problem for a while. It's been there for years but it's just been an irritating problem and not a serious one, and I have just worked around it. But now I want to find out if anyone can help me. I have done some google'ing but no success.

If I do a form post from a html textarea in a php file like this:

and of course there is a submit button and so on.

The value is the problem: google's site The value of the textarea have both "(Quotation mark) and '(Apostrophe).

To save this in a mysql_database I do this:

$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".$_POST['text']."') ") or die(mysql_error());

And now I get the mysql error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's site'' at line 1

  • Trung Nguyen
  • 03/05/2020

  • 5 min read

Chuỗi trong PHP là gì?

Chuỗi trong PHP là một chuỗi các ký tự, nó được sử dụng để lưu trữ và thao tác văn bản. Có 4 cách để định nghĩa một chuỗi trong PHP:

  1. Dấu nháy đơn.
  2. Dấu nháy kép.
  3. Cú pháp heredoc.
  4. Cú pháp newdoc.

Dấu nháy đơn

Bạn có thể sử dụng cặp dấu nháy đơn để định nghĩa một chuỗi. Chuỗi này là một chuỗi đơn thuần, nó xem các biến và ký tự đặc biệt trong chuỗi như là các ký tự thông thường khác và không có bất kỳ xử lý nào khi in.

;
   echo $str2;
   echo 
; echo $str3; ?>

Đây là kết quả:

trying variable $num1 
trying backslash n and backslash t inside single quoted string \n \t 
Using single quote 'my quote' and \backslash

Dấu nháy kép

Bạn có thể sử dụng cặp dấu nháy kép để định nghĩa một chuỗi. Chuỗi này sẽ thay thế các biến bằng giá trị của nó và hiển thị các ký tự đặc biệt khi in.

Đây là kết quả:

Number is: 10

Cú pháp heredoc

Bạn cũng có thể sử dụng cú pháp heredoc để định nghĩa chuỗi trong PHP.

Trong cú pháp heredoc, một mã định danh được cung cấp sau toán tử <<< này và ngay lập tức một dòng mới được bắt đầu để viết bất kỳ văn bản nào. Sử dụng mã định danh để đóng và lưu ý là không có bất kỳ khoảng trắng hoặc tab nào ở phía trước.

Đây là kết quả:

It is the example of multiple lines of text.

Heredoc tương tự như chuỗi trong cặp dấu nháy kép. Nó cũng có thể in giá trị của biến và các ký tự đặc biệt.

Đây là kết quả:

Hello! My name is Misthi, and I live in Delhi. 

Cú pháp newdoc

Khai báo newdoc tương tự như heredoc, chỉ khác ở chỗ mã định danh trong newdoc phải đặt trong cặp dấu nháy đơn.

Nếu heredoc tương tự như chuỗi trong cặp dấu nháy kép thì newdoc tương tự như chuỗi trong cặp dấu nháy đơn.

Đây là kết quả:

Welcome to $comdy. Learn with newdoc example.
Lưu ý: newdoc được hỗ trợ bởi các phiên bản PHP 5.3.0+.

Ví dụ về chuỗi trong PHP

Sau đây là các ví dụ hợp lệ của chuỗi trong PHP:


$string_1 = "This is a string in double quotes";
$string_2 = "This is a somewhat longer, singly quoted string";
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters

Các chuỗi nằm trong cặp dấu nháy đơn là các chuỗi đơn thuần, trong khi đó các chuỗi trong cặp dấu nháy đôi sẽ thay thế các biến bằng các giá trị của chúng cũng như hiển thị các ký tự đặc biệt.

Ví dụ sau sẽ minh họa điều này:

Đây là kết quả:

My name will print!
My $variable will not print!\n

Như bạn thấy ở ví dụ trên, chuỗi nằm trong cặp dấu nháy đơn không có bất kỳ xử lý gì với biến $variable và ký tự xuống dòng \n, nó xem chúng như là những ký tự bình thường.

Trong khi đó chuỗi nằm trong cặp dấu nháy kép sẽ thay thế biến $variable bằng giá trị của nó là "name" và hiển thị ký tự xuống dòng \n khi được in.

Không có giới hạn về độ dài chuỗi, bạn có thể tạo các chuỗi dài tùy ý miễn là trong giới hạn cho phép của bộ nhớ.

Các chuỗi được phân tách bằng dấu nháy kép được xử lý trước bởi PHP theo cả hai cách sau:

  • Một số ký tự bắt đầu bằng dấu gạch chéo ngược (\) được thay thế bằng các ký tự đặc biệt.
  • Tên biến (bắt đầu bằng $) được thay thế bằng giá trị của chúng.

Thay thế các ký tự đặc biệt như sau:

  • \n được thay thế bằng ký tự dòng mới.
  • \r được thay thế bằng ký tự trở lại đầu dòng.
  • \t được thay thế bằng ký tự tab.
  • \$ được thay thế bằng chính ký hiệu đô la ($).
  • \" được thay thế bằng một dấu nháy kép (").
  • \\ được thay thế bằng dấu gạch chéo ngược (\).

Toán tử nối chuỗi trong PHP

Để nối hai biến chuỗi với nhau, hãy sử dụng toán tử dấu chấm (.)

Đây là kết quả:

Hello World 1234

Nếu bạn xem kỹ đoạn mã trên, bạn sẽ thấy rằng chúng tôi đã sử dụng toán tử ghép hai lần. Điều này là do chúng tôi đã chèn thêm khoảng trắng vào giữa hai chuỗi.

Sử dụng hàm strlen() trong PHP

Hàm strlen() là một hàm tích hợp sẵn trong PHP được sử dụng để trả về độ dài của chuỗi. Ví dụ sau trả về độ dài của chuỗi "Hello world!"

Đây là kết quả:

12

Độ dài của một chuỗi thường được sử dụng trong các vòng lặp hoặc các hàm khác, khi cần biết khi nào chuỗi kết thúc.

Sử dụng hàm strpos() trong PHP

Hàm strpos() là một hàm tích hợp sẵn trong PHP được sử dụng để trả về vị trí của một chuỗi hoặc một ký tự trong một chuỗi.

Nếu một kết quả khớp được tìm thấy trong chuỗi, hàm này sẽ trả về vị trí của kết quả khớp đầu tiên. Nếu không tìm thấy kết quả khớp, nó sẽ trả về FALSE.

Ví dụ sau đây sẽ tìm và trả về vị trí của chuỗi "world" trong chuỗi "Hello world!":

Bản thử trực tiếp

Đây là kết quả:

6

Như bạn thấy vị trí của chuỗi "world" trong chuỗi "Hello world!" của chúng ta là vị trí 6. Lý do là 6 chứ không phải 7, là vị trí đầu tiên trong chuỗi là 0 chứ không phải 1.

LƯU Ý - Các hàm chuỗi tích hợp sẵn được trình bày chi tiết tại đây.

Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian

Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.

Lập Trình PHP