Xóa thuộc tính bằng PHP

Đôi khi bạn cần xóa thuộc tính style khỏi phần tử html. Chức năng dưới đây được thiết kế để thực hiện nhiệm vụ này

Hàm số

function stripStyle($string) {
    
    return preg_replace('/(<[^>]+) style=".*?"/i', '$1', $string);     
}

Gọi hàm

$string = '< div style="font-size:10px;color:red">Hello World!< /div>';

echo stripStyle($string);

đầu ra

< div>Hello World!< /div>

Bạn có thể xóa các thuộc tính bên trong các thẻ HTML bằng hàm preg_replace(). Nó là một chức năng tích hợp PHP. Cách tiếp cận này yêu cầu phương thức RegEx. Nếu bạn muốn bỏ qua RegEx, bạn có thể sử dụng hàm str_replace() trong một số trường hợp

Trong bài viết này, tôi sẽ thảo luận về các phương pháp khác nhau với ví dụ thích hợp

cú pháp
preg_replace('tìm', 'thay thế', 'chuỗi');

Chúng ta cần cung cấp ba tham số

1. Findis tham số đầu tiên nên được thay thế bằng tham số thay thế

2. Replace sẽ thay thế những phát hiện

3. Chuỗi sẽ chứa chuỗi đầy đủ từ nơi bạn muốn xóa thuộc tính

Trong vị trí của các tham số, bạn có thể sử dụng các biến PHP

Thảo luận. xóa thuộc tính khỏi thẻ HTML

Ở đây tôi bao gồm một số ví dụ để làm rõ các phương pháp khác nhau

ví dụ 1. Xóa tất cả các thuộc tính khỏi thẻ HTML

Example text

'; //removing all attributes from html tags $string = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/si",'<$1$2>', $string); //showing result echo $string; ?>

Kết quả bình thường.  

Văn bản mẫu

Sau khi loại bỏ thuộc tính

Văn bản mẫu

Bạn có thể dùng hàm htmlentities() để xem kết quả rõ hơn

tiếng vang htmlentities($string);

đầu ra

Văn bản mẫu

Ghi chú. htmlentities() là một hàm tích hợp sẵn của PHP, hiển thị các thẻ HTML trên đầu ra của trình duyệt

Note: In rare cases this method could fail, which the Anti-HTML + RegExp will tell you. For instanse, would end up "> in output.

Bạn có thể sử dụng Zend_Filter_StripTags làm bộ lọc thuộc tính/thẻ bằng chứng đầy đủ hơn trong PHP

Một giải pháp đơn giản khác là sử dụng hàm str_replace(). Bạn nên nhớ rằng hàm này chỉ hoạt động với các giá trị tham số cụ thể

ví dụ 2. Xóa thuộc tính cụ thể khỏi thẻ HTML cụ thể

Example text';
//removing specific attribute from html tag
$string = str_replace('','', $string);

Hoặc là

//input string
$string = 'Example text';
//removing specific attributes from html tag
$string = str_replace('','', $string);
//showing results
echo htmlentities($string);
?>

đầu ra

Văn bản mẫu

Giải thích RegExp

1. / Start Pattern

2. < Match '<' at beginning of tags

3. ( Start Capture Group $1 - Tag Name

4. [a-z] Match 'a' through 'z'

5. [a-z0-9]* Match 'a' through 'z' or '0' through '9' zero or more times

6. ) End Capture Group

7. [^>]*?

8. (\/?) Capture Group $2 - '/' if it is there

9. > Match '>'

10. /si End Pattern - Case Insensitive & Multi-line ability

Finally, <$1$2> just reserve the tag names and texts inside them to serve in output.

Thẩm quyền giải quyết

PHP preg_replace

Xóa thuộc tính bằng PHP

Giới thiệu về đạo Hồi Torikul

Torikul islam là nhà phát triển web chuyên nghiệp và nhà tiếp thị liên kết. Tham gia cùng Torikul để học cách bắt đầu một trang web và vận hành nó thật tốt. Anh ấy bắt đầu sự nghiệp Phát triển Web của mình từ Hiệp hội Phần mềm và Thông tin Bangladesh (BASIS) vào năm 2015. Sau đó, anh tiếp tục hành trình mở rộng kiến ​​thức và chia sẻ nó với những người khác

Có những trường hợp bạn không cần xóa các thẻ HTML khỏi văn bản mà chỉ xóa các thuộc tính thuộc thẻ đó. Trong trường hợp này, một biểu thức chính quy có thể nhanh chóng bỏ qua vấn đề

Với preg_replace, bạn có thể xóa tất cả các thuộc tính khỏi chuỗi đã cho

Ghi chú. Trong một số trường hợp, chẳng hạn như nếu HTML không đúng về mặt cú pháp, giải pháp này sẽ không cho kết quả chính xác.