There might be cases where whitespace is appended to the array element($abusive_words) while retrieving it from the text file. str_ireplace() might not be able to get perfect match due to these whitespaces. So its always better to trim the array elements before proceeding further especially for comparison.
array_map() and trim is what you need.
$abusive_words = array_map('trim', $abusive_words);
Do this before passing array to str_ireplace()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…