Como hacer que php escriba variables
#1 ·

Hola de nuevo, uff cuanto tiempo y como ha cambiado esto, felicidades por vuestra nueva adqusición y el aumento de velocidad en la web es imparable.

Estoy haciendo un CMS y tengo un problema a la hora de crear el archivo de configuración para las conexiones a MySQL.
El código es el siguiente:

$text = "<?php $bdservidor='$ipsql'; ?>";

if (file_put_contents("config2.php", $text) == FALSE) {
echo "Error";
}
else{
echo "OK";
}

pero al no encontrar la variable llamad $bdservidor me lo deja así:
<?php ='localhost'; ?>

Y yo quiero así:
<?php $dbservidor= 'localhost'; ?>

Espero que me puedan ayudar.


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
#2 ·
Escrito originalmente por inigoruiz
$text = "<?php $bdservidor='$ipsql'; ?>";
Me explicas esta línea....

@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.299
Desde: 01/Mar/2003
· ·
#3 ·

Si, la verdad es que no me explico muy bién.

quiero hacer un asistente para que el usuario meta la dirección del servidor de MySQL, la contraseña y el usuario. Entoces el script escribiría un archivo con las variables de configuración.

Entonces esa variable, que es de prueba, que es la ip de MySQL.

Entonces yo quiero que en el archivo config2.php aparezca lo siguiente:

<?php $dbservidor= 'localhost'; ?>

pero php intenta convertir la variable en rojo en su valor correspondiente y al no encontrarlo lo deja así:

<?php ='localhost'; ?>

Lo que necesito es que no intente convertir esa variable.


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
#4 ·

Que lio tienes...

$variable_que_voy_a_mostrar='$bdservidor=\''.$ipsql.'\';


@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.299
Desde: 01/Mar/2003
· ·
#5 ·

NoSetup, creo que te has confundido con tu codigo, pues al ejecutarlo no devuelve nada por pantalla, es decir:

$text='$bdservidor=\''.$ipsql .'\';

if (file_put_contents("config2.php", $text) == FALSE) {
echo "Error";
}
else{
echo "OK";
}
?>


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
#6 ·

echo $texto;


Y ves si devuelve lo que quieres o no.


@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.299
Desde: 01/Mar/2003
· ·
#7 ·

Parece que no nos entendemos, al ejecutar el script anterior, normalmente me devuelve "OK" y escribía el archivo config2.php.

Pero al ejecutar el mismo script pero con la variable que me diste, no me muestra nada por pantalla y no me escribe nada.

Miraré en el autoinstalador del phpMyAdmin nuevo.


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
#8 ·

Pero el echo ¿te devuelve lo que quieres que se escriba en el archivo?


@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.299
Desde: 01/Mar/2003
· ·
#9 ·

<?php
$ipsql="localhost";
$text='$bdservidor=\''.$ipsql .'\';
if (file_put_contents("config2.php", $text) == FALSE) {
echo "Error";
}
else{
echo "OK";
}
echo $text;
echo "<br>";
?>

Eso no me devuelve nada.

He mirado en los logs de apache y dice esto:
[client 127.0.0.1] PHP Parse error:  syntax error, unexpected $end in C:\\servidor\\web\\PA\\install2.php on line 12


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
#10 ·
Escrito originalmente por inigoruiz
Eso no me devuelve nada.

He mirado en los logs de apache y dice esto:
[client 127.0.0.1] PHP Parse error:  syntax error, unexpected $end in C:\\servidor\\web\\PA\\install2.php on line 12
Eso te lo tendría que devovler la propia página, a no ser que hayas tocado el php.ini para que no muestre los errores.

Tiene pinta de mal subido, pero obviamente no puede ser eso. Es como si no llegase a interpretar bien el código...

@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.299
Desde: 01/Mar/2003
· ·
#11 ·

No, se.
Miraré el phpMyAdmin.
Muchas gracias por todo.


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
#12 ·

Hola inigoruiz:
Antes que nada quería pedir disculpas por descubrir este tema de facil respuesta tan tarde. Al autor de este tema en especial.

La solución para tu problema sería la siguiente:

$text = "<?php \$bdservidor=\"" . $ipsql . "\";\r\n?>";

if (file_put_contents("config2.php", $text) == false) {
echo "Error";
}
else {
echo "OK";
}

Fijate que lo que sucede es que el PHP para que interprete el signo $ como parte de la cadena que se va a escribir en el archivo "config2.php", hay que ponerlo como \$ , porque sino se lo confunde con que tu quieres incluir el contenido de una variable, que en ese caso sería $bdservidor que, en realidad, no es ninguna variable que quieras que sea transformada o sea traducida por el PHP .

En esta página tienes más información acerca del tema:
http://www.php.net/manual/en/language.types.string.php
o también tienes el mismo contenido de esa página web en su version en español:
http://www.php.net/manual/es/language.types.string.php

En esas páginas vas a ver también que son \" , \r y \n , que he incluido el codigo para que tenga " ( comillas dobles ) en ves de ' ( comillas simples ). Aunque tu puedes modificarlo a tu gusto para que siga teniendo ' ( comillas simples ). Yo utilizo " ( comillas dobles ) por convención, y porque así lo utiliza la mayoría de los que programan en PHP. El \r\n es para insertar una nueva linea en lo que se escribe en "config2.php", lo cual lo puedes quitar y poner de vuelta el espacio si tu quieres, aunque yo te recomendaría que dejes esa nueva linea.

Saludos.


Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 78
Desde: 19/Ago/2003
· ·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Espacio WEB · PHP
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 22:36 UTC+02:00 DST
Temas similares
 I FotoPTemaMensajesÚltima respuesta
No Hay mensajes nuevosHaz clic para ver el perfil del usuario216/Mar/2004, 14:56
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario105/Mar/2014, 07:21
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario418/Feb/2011, 19:48
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Variables PHP
Por: · 23/Ago/2009, 04:07
224/Ago/2009, 17:33
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario0Hoy, 01:00
 Ir al último mensaje del tema
Recomendado