Это должно сделать это. То, что он делает, ищет <tag>
, за которым следует любое количество пробелов и пробелов, пока он не найдет другой непробельный символ. Затем он удаляет любое количество пробелов перед закрытием </tag>
.
preg_replace(array(
'/(<[a-zA-Z]+>)[[:space:]]*([^[:space:]])/m',
'/[[:space:]]*(<\/[a-zA-Z]+>)/m',
), array(
'\1\2',
'\1',
), $str);
Посмотри в действии: http://codepad.org/Stmd32QL
Редактировать
Это будет искать только <code>
теги.
preg_replace(array(
'/(<code>)[[:space:]]*([^[:space:]])/mi',
'/[[:space:]]*(<\/code>)/mi',
), array(
'\1\2',
'\1',
), $str);