Remove special HTML characters from string in PHP -
this question has answer here:
- php remove special character string 7 answers
i found many results reason nothing works me! i've tried preg_replace regex , html_entity_decode, no good...
i want select words has hash mark prefix e.g. #word, works fine, hash mark read ‏#word , misses up.
example:  this normal #hash_mark #this_isn't
as appears: 
the regex use select words hash mark prefix '~(?<=\s|^)#[^\s#]++~um'
in question marked duplicate, answer doesn't work unicode text, seen in image:
the code remove special characters including unicode text, what's required replace ‏# normal # 
function remove_special_char($sentence){         return preg_replace('/[^a-za-z0-9_ %\[\]\.\(\)%&-]/s','',$sentence);                   }  echo remove_special_char("hello مرحبا привет שלום"); output:
hello 
there 2 different characters special_characters  
let happened i've made debug
        var_dump(ord('#')); //return ascii value of char         $str1 = 'this character 226 #';          $str1v1 = preg_replace('/[^a-za-z0-9_ %\[\]\.\(\)%&-]/s', '', $str1);          var_dump(ord('#')); //return ascii value of second char         $str2 = "this character 35 #";          $str2v1 = preg_replace('/[^a-za-z0-9_ %\[\]\.\(\)%&-]/s', '', $str2);           var_dump($str1v1);         var_dump($str2v1);          var_dump($str1);         var_dump($str2); output:
int 226 int 35 string 'this character 226 ' (length=22) string 'this character 35 ' (length=21) string 'this character 226 â€#' (length=26) string 'this character 35 #' (length=22) maybe or end user have done copy , paste somewhere , included converted charcode described (‏#). since rendered same surface , make confused.
to escape characters, have used regex in following line
preg_replace('/[^a-za-z0-9_ %\[\]\.\(\)%&-]/s', '', $str1); the regex has been taken php remove special character string
Comments
Post a Comment