El php nunca llega al navegador, sólo el resultado generado desde el servidor, por lo tanto no debes tratarlos como si fueran a ser ambos interpretados por el browser.
Ese php ha de escribirte parte de una cadena, no necesitas cerrar el string hasta detrás del valor escrito por php
prueba a ver así
window.open("http://localhost/prueba.php?valor=<?echo $i;?>",pagina)