Tôi gặp khó khăn trong việc khớp hai chuỗi văn bản. Một chứa một số ký tự ẩn từ một chuỗi văn bản.Làm thế nào để loại bỏ các ký tự ẩn khỏi chuỗi văn bản trong PHP?
Tôi có chuỗi văn bản: "PR & Thông tin liên lạc" được lưu trữ trên cơ sở dữ liệu SQL. Khi được kéo từ đó, vào $database_version
, var_dump($database_version)
cho biết chuỗi có 19 byte.
Tôi đã cạo (với sự cho phép) từ một trang web, một số văn bản thành một biến, $web_version
. Rõ ràng chuỗi là "PR & Truyền thông" nhưng không khớp với phiên bản cơ sở dữ liệu, tức là if($database_version == $web_version)
là không đúng sự thật.
var_dump()
tiết lộ $web_version
để có 23 byte. trim()
không có hiệu lực, cũng như không strip_tags()
nhưng preg_replace('/[^\PC\s]/u', $web_version)
xóa nội dung nào đó vì sau đó string_var($web_version)
cho biết chuỗi chỉ bao gồm 14 byte. Nó đã loại bỏ rõ ràng một cái gì đó, có thể quá nhiều, vì chuỗi vẫn không khớp với $database_version
.
Bất kỳ ý tưởng làm thế nào để:
- tìm hiểu những gì đã được gỡ bỏ
- dải ra vừa đủ để phù hợp với $ database_version?
PS Tôi không biết làm thế nào để xem các biến trong mã thập lục phân
Wen cố gắng so sánh _if ($ database_version == $ web_version) _ là cả hai biến có định dạng chuỗi không? Hãy thử với một số phương pháp typecasting và trim. – Drone
Bạn có thể thử sử dụng 'utf8-decode ($ web_version)' - http://php.net/manual/en/function.utf8-decode.php. – Scott
gỡ lỗi: để xem chuỗi dưới dạng byte hex, sau đó sử dụng 'var_dump ($ web_version, bin2hex ($ web_version), __FILE __.__ LINE __);'. Để xem những gì nhân vật đại diện sau đó: [Bảng ASCII và mô tả] (http://www.asciitable.com/) và [Danh sách ký tự hoàn chỉnh cho UTF-8] (http://www.fileformat.info/info/charset /UTF-8/list.htm) –