Функции implode()
и explode()
полностью независимы.У них нет «памяти» или «знания» друг о друге или о том, что они сделали.
Итак, explode()
не знает, что implode()
использовал символ, который он собирается использовать.Фактически, для некоторых людей это может быть допустимым вариантом использования, и они хотят разделить все запятые.
Это довольно стандартная проблема при использовании любого типа мета или escape-символа.Что вы делаете, когда видите этого персонажа и он должен быть там?Вы избежите побега персонажа.Пример в виде строки с escape-символами:
"\tHello,\nI need something to do\\think about.\n"
Это не просто с помощью простого взрыва / взрыва.Это исправлено парсером.
Самое простое для вас - сделать разделитель чем-то совершенно уникальным.Это не должен быть один персонаж.Или вы можете выполнить более сложный анализ.
$separator = 'abcd1234(*&@#@%asdf___jasldfkj'; // something very unlikely to actually exist
$a=array('a,b', 'cd');
$b=implode($separator, $a);
$c=explode($separator, $b);
print_r($c);
результат:
Array
(
[0] => a,b
[1] => cd
)