Замена в одиночку не будет достаточно для вас.Будь то регулярные выражения или простая замена строк, потому что если вы заменяете знаки <>, то знаки <и> или наоборот, в итоге вы получите одну кодировку / декодирование (все знаки <и> или все знаки <и>).
Так что, если вы хотите сделать это, вам придется разобрать один комплект (я решил заменить его заполнителем), сделать замену, затем положить их обратно и сделать другую замену.
$str = "<code> <div> blabla </div> </code>";
$search = array("<",">",);
//place holder for < and >
$replace = array("[","]");
//first replace to sub out < and > for [ and ] respectively
$str = str_replace($search, $replace, $str);
//second replace to get rid of original < and >
$search = array("<",">");
$replace = array("<",">",);
$str = str_replace($search, $replace, $str);
//third replace to turn [ and ] into < and >
$search = array("[","]");
$replace = array("<",">");
$str = str_replace($search, $replace, $str);
echo $str;