<?php

$re = '~\$[^$]+\$~'; 
$str = "\$ words words \$ \$ words words \$ \$ words words \$ \$ words words \$"; 
$result = preg_replace_callback($re, function($m) {
	return str_replace(" ", "-", $m[0]);
}, $str);
echo $result;