2016-11-30 6 views
-1

Допустим, я следующая строка: $string = "Ne, želim ići kući."Замена специальных символов элементов в массиве, PHP

Тогда я разделил его с preg_split("/[\s,.]+/",$string) и получить массив с каждым словом в предложении: Array ([0] => [1] => e [2] => želim [3] => ići [4] => kući [5] =>)

Как я могу прямо сейчас (для каждого элемента массива) заменить все специальные символы на стандартные ascii?

Есть более простой способ, чтобы заменить символы, такие как Ĉ и другие, чем следующий?

foreach ($array as $element) { 
    echo str_replace("ć","c",$element); 
    ... 
} 

Возможно, существует функция, которая может обрабатывать весь массив самостоятельно без каких-либо петель foreach; что-то вроде convert_to_ascii($array)

Редактировать: Поскольку я хочу опустить цикл for, я думаю, что этот вопрос не является дубликатом, как отмечено. Мой вопрос касается функции, которая может обрабатывать и возвращать целые массивы сама по себе.

+1

посмотреть на [это] (http://stackoverflow.com/a/26514376/2162347) ответить – Dragos

+5

Возможный дубликат [Замена акцентированных символов php] (http://stackoverflow.com/questions/3371697/replacing-accented -characters-php) – Dragos

+0

['echo iconv ('UTF-8', 'ASCII // TRANSLIT', $ string);'] (http://php.net/manual/en/function.iconv.php) – Sammitch

ответ

1

IMHO более удобный способ получить эту работу - установить/включить собственный PHP-модуль под названием translit.

Для получения информации вы можете посетить pecl translit.

После того, как вы включили его, вы можете сделать что-то фантазии, как:

echo Transliterator::transliterate('àéô'); 

и вы получите aeo.

Для получения дополнительной информации, вы можете взглянуть на here.