$newtext = str_replace('$url', '$link', $text);

そりゃー変数をシングルクォートでくくったらダメだろう。