Я знаю, что эта тема была решена здесь, но я сделал свой метод, и я не понимаю, почему он не работает.
У меня есть следующий код:
$string1 = "sandisk-mobilemate™-duo";
$str_length1 = strlen($string1);
for($i = 0; $i < $str_length1; $i++){
echo $string1[$i]." = ".ord($string1[$i])."<BR />";
if((ord($string1[$i]) == 226) || (ord($string1[$i]) == 132) || (ord($string1[$i]) == 162)){
$string1[$i] == '';
}
}
echo $string1.'<BR />';
Теперь несколько комментариев. Цикл управляет строкой символ за символом. На первом этапе он показывает вывод каждого символа в ASCII. На этом этапе я понял, что знак ТМ состоит из трех символов (226, 132, 162 в ASCII). Таким образом, второй шаг должен заменить эти символы на пустой символ (»). Но я не понимаю, почему этого не происходит.
Спасибо за ваши исправления и объяснения.
Вам не нужно возиться со значениями ascii, просто удалите символ
$string1 = 'sandisk-mobilemate™-duo';
$string2 = str_replace('™', '', $string1);
echo $string2;
// sandisk-mobilemate-duo
Других решений пока нет …