Làm cách nào để loại bỏ một trích dẫn trong php?

Sử dụng phương pháp String.replaceAll[] để loại bỏ tất cả các dấu ngoặc kép khỏi một chuỗi, e. g. str.replaceAll['"', '']. Phương thức replace[] sẽ trả về một chuỗi mới đã loại bỏ tất cả các dấu ngoặc kép

Chúng tôi đã chuyển các tham số sau cho Chuỗi. phương pháp thay thế tất cả

  1. một chuỗi con chúng tôi muốn khớp trong chuỗi. Trong trường hợp của chúng tôi, một chuỗi chứa dấu ngoặc kép
  2. Sự thay thế cho mỗi trận đấu. Chúng tôi cần xóa từng dấu ngoặc kép, vì vậy chúng tôi thay thế dấu ngoặc kép bằng các chuỗi rỗng

Phương thức replaceAll[] không thay đổi chuỗi gốc. Nó trả về một chuỗi mới với tất cả các kết quả khớp được thay thế. Các chuỗi là bất biến trong JavaScript

Ngoài ra, bạn có thể sử dụng phương pháp replace[]

Để xóa dấu ngoặc kép khỏi một chuỗi

  1. Gọi phương thức replace[] trên chuỗi
  2. Phương thức
          if[empty[$ptitle]]{
             $description = addslashes[$this->description];
          } else {
             $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];
    0 sẽ thay thế mỗi lần xuất hiện của một trích dẫn kép bằng một chuỗi rỗng
  3. Phương thức
          if[empty[$ptitle]]{
             $description = addslashes[$this->description];
          } else {
             $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];
    0 sẽ trả về một chuỗi mới đã loại bỏ tất cả các dấu ngoặc kép

Tham số đầu tiên chúng tôi chuyển đến Chuỗi. phương thức thay thế là một biểu thức chính quy mà chúng tôi muốn khớp trong chuỗi

Hai dấu gạch chéo về phía trước

      if[empty[$ptitle]]{
         $description = addslashes[$this->description];
      } else {
         $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];
2 đánh dấu phần đầu và phần cuối của biểu thức chính quy

Chúng tôi sử dụng cờ

      if[empty[$ptitle]]{
         $description = addslashes[$this->description];
      } else {
         $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];
3 [toàn cầu] vì chúng tôi muốn so khớp tất cả các lần xuất hiện của một trích dẫn kép trong chuỗi chứ không chỉ lần xuất hiện đầu tiên

Nếu bạn cần trợ giúp để đọc một biểu thức chính quy, hãy xem trang phục regex này của MDN

Tham số thứ hai mà chúng tôi truyền cho phương thức

      if[empty[$ptitle]]{
         $description = addslashes[$this->description];
      } else {
         $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];
0 là một chuỗi rỗng vì chúng tôi muốn xóa tất cả các dấu ngoặc kép khỏi chuỗi

Phương thức

      if[empty[$ptitle]]{
         $description = addslashes[$this->description];
      } else {
         $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];
0 không thay đổi chuỗi ban đầu, nó trả về một chuỗi mới

Ngoài ra, bạn có thể sử dụng các phương pháp str.replaceAll['"', '']2 và str.replaceAll['"', '']3

Để xóa dấu ngoặc kép khỏi một chuỗi

  1. Sử dụng phương pháp str.replaceAll['"', '']4 để tách chuỗi trên mỗi trích dẫn kép
  2. Sử dụng phương thức str.replaceAll['"', '']3 để nối mảng các chuỗi
  3. Chuỗi mới sẽ không chứa bất kỳ dấu ngoặc kép nào

chuỗi. phương thức split chia chuỗi thành một mảng các chuỗi con dựa trên dấu tách được cung cấp

Tôi đã sử dụng một lớp gọi là clsMetaContent. php, như được cung cấp trong cuốn sách Tạo trang web tương tác bằng PHP và Dịch vụ web của  Eric Rosebrock - người mà tôi hiểu là nhà phát triển chính của trang web này

 

Trong khi sử dụng lớp này với ứng dụng của tôi - tôi thấy có vấn đề trong việc gán mô tả cho phần mô tả của thẻ meta

 

Mã trong lớp trông như thế này

 

// Formulate the description for each page.
      if[empty[$ptitle]]{
         $description = $this->description;
      } else {
         $description = '$ptitle - $this->description";

 

Tôi nhận thấy rằng mô tả của tôi có thể chứa dấu ngoặc đơn và/hoặc dấu ngoặc kép. Điều này gây ra sự cố với việc gán thẻ meta cho mô tả. Điều xảy ra là, do lỗi ở định dạng của mô tả thẻ meta, nó xuất lại nội dung của mô tả ở đầu trang web của tôi, thay vì giữ nó trong phần gán thẻ meta

 

Tôi nghĩ rằng tôi chỉ cần một chức năng để loại bỏ các dấu ngoặc kép và dấu ngoặc đơn - nhưng không thể tìm thấy bất kỳ dấu ngoặc kép nào

Có ai có lời khuyên nào không?

 

Cảm ơn trước

 

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

sasa

Đăng ngày 18 tháng 9 năm 2007

sasa

  • cựu nhân viên
    • 2. 8k
  • Địa điểm. Hrvatska

    • Đăng lại

Đăng ngày 18 tháng 9 năm 2007

thay đổi $description = '$ptitle - $this->description"; thành $description = "$ptitle - $this->description";

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

jwhite68

Đăng ngày 18 tháng 9 năm 2007

jwhite68

  • Các thành viên
    • 168
  • Địa điểm. Bulgari

  • Tác giả

    • Đăng lại

Đăng ngày 18 tháng 9 năm 2007

Đó là lỗi của tôi ngay từ đầu, vì tôi đang 'chơi' với các trích dẫn trong bài tập này

Ban đầu nó có dấu ngoặc kép như bạn đã chỉ ra và đây là lúc sự cố xảy ra

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

danltn

Đăng ngày 18 tháng 9 năm 2007

danltn

  • Các thành viên
    • 14

    • Đăng lại

Đăng ngày 18 tháng 9 năm 2007

Tôi chỉ cần một chức năng để loại bỏ dấu ngoặc kép và dấu ngoặc đơn

 

str_replace sẽ không làm điều này?

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

sasa

Đăng ngày 18 tháng 9 năm 2007

sasa

  • cựu nhân viên
    • 2. 8k
  • Địa điểm. Hrvatska

    • Đăng lại

Đăng ngày 18 tháng 9 năm 2007

Được, thử đi

      if[empty[$ptitle]]{
         $description = addslashes[$this->description];
      } else {
         $description = addslashes[$ptitle] . ' - ' . addslashes[$this->description];

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

jwhite68

Đăng ngày 18 tháng 9 năm 2007

jwhite68

  • Các thành viên
    • 168
  • Địa điểm. Bulgari

  • Tác giả

    • Đăng lại

Đăng ngày 18 tháng 9 năm 2007

Tôi đã thử điều này mà không thành công

 

// Formulate the description for each page.
     if[empty[$ptitle]]{
        $description = $this->description;
     } else {
        $description = "$ptitle - $this->description";
     }
  $description = str_replace['"', '\"', $description]; 
  $description = str_replace["'", "\'", $description];

 

Cố gắng thay thế trích dẫn kép trong str_replace đầu tiên và thay thế trích dẫn đơn trong lần thứ hai. I E. thay thế bằng \ để nó thoát ra, thay vì xóa nó

  • Trích dẫn

Liên kết để bình luậnChia sẻ trên các trang web khác

Nhiều tùy chọn chia sẻ hơn

jwhite68

Đăng ngày 18 tháng 9 năm 2007

jwhite68

  • Các thành viên
    • 168
  • Địa điểm. Bulgari

  • Tác giả

    • Đăng lại

Đăng ngày 18 tháng 9 năm 2007

Xin lỗi, đã đăng điều đó trong khi bạn đăng sasa đề xuất của mình. Tôi đã triển khai đề xuất của bạn ngay bây giờ và nó đã xóa dấu gạch chéo, nhưng tôi vẫn gặp lỗi với mô tả meta. Điểm nổi bật màu đỏ [là lỗi] trong Firefox. Đây là những gì đang được chỉ định

 

 

Không chắc đó có phải là gạch đầu dòng gây ra sự cố với nó không. Nó làm nổi bật nội dung cho đến các khóa học của người chơi Gary bằng màu đỏ

Chủ Đề