2013-05-20 11 views
6

Chcę zamienić poziomą elipsę (...) na trzy kropki (...) w danym ciągu znaków.
Do tej pory próbowałem to:Jak dopasować poziomą elipsę (...) w php

str_replace('…','...', $text);
str_replace('…', '...', $text);
str_replace('&hellips', '...', $text);

Ale nie mógł uzyskać pożądany wynik. Czy możesz zaproponować jakąś metodę na to.

EDIT:
jeden problem jestem stoi związane to jest kiedy wklej ~ ... ~ u postacią w moim edytorze (używam EditPlus). ... są przekształcane w prostokąt. (patrz zrzut ekranu). enter image description here

Dzięki

+0

Pierwsze prace będą , ale musisz poinformować swojego edytora, że ​​plik ma UTF-8. Naprawi to również problem "edytuj". – Jon

+0

@Jon Moje kodowanie edytora jest już UTF-8 – jimy

+0

Twoja pierwsza metoda [powinna działać poprawnie] (http://3v4l.org/Q4p51). Powiedziałbym, że po prostu zgadujesz, co to jest znak z wizualnej kontroli widoku renderowanego HTML. Dodatkowo jestem ciekawy, dlaczego uważasz, że musisz usunąć ten znak. –

Odpowiedz

2

spróbuje użyć preg_replace z/u modyfikatora (łańcuch jest traktowany jako ciąg znaków Unicode):

$result = preg_replace('~…~u', '...', $string); 
+0

Zobacz moje edytowane pytanie – jimy

+0

@jimy: spróbuj wpisać się w postać –

+1

Jak mogę to zrobić? który klucz (lub kombinacja) słowa kluczowego da to? – jimy

2

Try To

str_replace('…', '...', htmlentities($text)); 
+0

Nie traf ... wielokropek przekształca się niektórych znaków przewodowych gdy htmlentities nanosi – jimy

+0

Ten pracował dla mnie: 'str_replace ('& hellip;', '', htmlentities ($ str)) ; ' – Gerben