Buenas,
Tienes un fallo de concepto, ese foreach se repite dos veces, ya que el array tienes dos elementos, pero lo que haces dentro del foreach es imprimir el resultado de str_replace, luego la primera vez que entre imprime el texto con el primer cambio y la segunda vez que entre lo imprime con el segundo cambio, pero nunca lo imprime con los dos, porque $echo['articulo'] nunca se almacena.
Podrías hacerlo así:
Código PHP:
while ($echo = mysql_fetch_array($sql)) {
$articulo = $echo['articulo'];
foreach ($palabras as $key => $value) {
$articulo = str_replace($key, $value, $articulo);
}
echo $articulo;
}
Espero que te sirva, un saludo.