У меня есть странный тире в моем тексте, который не обнаруживается в str_replace
.
Вот пример:
Sun: 10:00 – 3:00pm
Я не знаю, появится ли черточка здесь .. но когда она вставлена в мой стол, это похоже на квадратное поле с символами 0096
Он очень похож на –
– при просмотре источника нет специальных символов, только тире.
str_replace('–', '', $var);
Вышеупомянутая замена, похоже, не улавливает ее, есть ли у кого-либо еще такая проблема?
Это дефис . В php самый переносимый способ получить это с помощью html_entity_decode
:
$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8'); echo str_replace($endash, '(en dash)', 'Sun: 10:00 – 3:00pm');
Обратите внимание, что это работает только в том случае, если кодировка вашего сайта UTF-8 и ваша кодировка редактора (или кодировка третьего аргумента str_replace
) также. Если вы используете другую кодировку (и вы должны использовать ее как для веб-сайта, так и для редактора), замените третий параметр html_entity_decode на свое имя.
http://php.net/manual/en/function.str-replace.php#102465 Яй предложил
$str = str_replace(chr(150), '-–', $str); // endash $str = str_replace(chr(151), '--', $str); // emdash
Для альтернативы, если другие ответы не сработают для вас, как и в моем случае, это работает для меня.
$title = "Hunting, Tactical & Outdoor Optics eCommerce Store ΓÇô $595,000 ΓÇö SOLD"; $title = str_replace(html_entity_decode('–', ENT_COMPAT, 'UTF-8'), '-', $title); $title = str_replace(html_entity_decode('—', ENT_COMPAT, 'UTF-8'), '-', $title);
Эн-Даш мы привыкли видеть
Em –
Dash, что мы должны использовать большую часть времени, где используется «-».
В принципе, это грамматика.
Читайте в Википедии: http://ru.wikipedia.org/wiki/Dash
На mac (с макетом для клавиатуры в США) я получаю удар Alt + -, так же, как вы получаете _ со сдвигом + _
Вам не нужна какая-либо специальная обработка, как будто это какой-то китайский символ. Это действительный характер. Рассматривайте это как таковое: str_replace('–', 'em dash');
,