Problema con Comillas y Comillas Dobles

  • Autor Autor Picorete
  • Fecha de inicio Fecha de inicio
Picorete

Picorete

Eta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Buenas de nuevo! 😛7: , estoy teniendo un pequeño problema, necesito crear un archivo php desde un php, hasta ahi todo bien, pero el php que necesito escribir, es algo extenso y posee muchas comillas simples y dobles, y pues, no se como escribir el codigo para que funcione bien, aja pongo el ejemplo:

PHP:
$archivo = fopen('links/nombredelarchivo.php','w+');
fwrite($archivo,"

class Twitter {

     function getMediaId($settings) {
    $host = "localhost";
    $userdb = "htskzlgb_pico";
    $passdb = "120120";
    $db = "htskzlgb_albanow";
    $con = mysqli_connect($host,$userdb,$passdb,$db) or die ("No he podido conectar con la base de datos.."); 
    $cuenta = $_POST['cuenta']; 
    $tweet = mysqli_query($con, "SELECT tweet,imagen,id FROM tweets WHERE access = '".$cuenta[0]."'") or die ("Error en la query..");
	$result = mysqli_fetch_array($tweet);
    $imagen = 'http://ver-manga.com/AlbaNow/img/'.$result[1].'';
        $url = 'https://upload.twitter.com/1.1/media/upload.json';
        $method = 'POST';
        $twitter = new TwitterAPIExchange($settings);

        $file = file_get_contents(''.$imagen.'');
        $data = base64_encode($file);

        $params = array(
            'media_data' => $data
        );

        try {
            $data = $twitter->request($url, $method, $params);
        } catch (Exception $e) {
            echo 'Excepción capturada: ', $e->getMessage(), "\n";
            // hacer algo
            return null;
        }

        // para obtener más facilmente el media_id
        $obj = json_decode($data, true);

        // media_id en formato string
        return $obj ["media_id_string"];
    }

     function sendTweets() {
     
    $host = "localhost";
    $userdb = "htskzlgb_pico";
    $passdb = "120120";
    $db = "htskzlgb_albanow";
    $cuenta = $_POST['cuenta']; 
    $con = mysqli_connect($host,$userdb,$passdb,$db) or die ("No he podido conectar con la base de datos.."); 
    $tweet = mysqli_query($con, "SELECT tweet,imagen,id FROM tweets WHERE access = '".$cuenta[0]."'") or die ("Error en la query..");
	$result = mysqli_fetch_array($tweet);
    $secret = mysqli_query($con, "SELECT secrettoken FROM usuarios_t WHERE accesstoken = '".$cuenta[0]."'") or die ("Error en la query..");
    $secrettoken = mysqli_fetch_all($secret);
        $url = "https://api.twitter.com/1.1/statuses/update.json";
        $requestMethod = 'POST';
        // configuracion de la cuenta
        // configuracion de la cuenta
        $settings = array(
            'oauth_access_token' => ''.$cuenta[0].'',
            'oauth_access_token_secret' => ''.$secrettoken[0][0].'',
            'consumer_key' => '',
            'consumer_secret' => '',
        );
        // establecer el mensaje
        $postfields = array('status' => ''.$result[0].'');
        // establecer el media_id
        $postfields['media_ids'] = $this->getMediaId($settings);

        // crea la coneccion con Twitter
        $twitter = new TwitterAPIExchange($settings);

        // envia el tweet
        $twitter->buildOauth($url, $requestMethod)
                ->setPostfields($postfields)
                ->performRequest();
    }
}

$t = new Twitter();
$t->sendTweets();
");

Basicamente ocupo escribir ese codigo, dentro de las comillas " " de fwrite($archivo," ") , pero obviamente me da error por que dentro del codigo hay mas "", o cual seria otra alternativa para crear un php desde otro 😛7:
 
Usa la comilla y por ejemplo en las querys o prints usa el backslash \ antes de la comilla
 
Como te ha comentado Enlace eliminado esta bién. No le des mas vueltas.
Insertar CODE, HTML o PHP:
fwrite($archivo,"\"\"\"");
escribira en el archivo """
 
He tenido varios proyectos con php y nunca he tenido que crear un archivo .php así.. que es lo que contendría ese archivo?
 
Mira, se me ocurre que se uses <<<END END; Para evitar problemas con las comillas y luego que escapes los signos $ poniendoles una barra invertida delante. Quedaría algo así:
PHP:
<?php
$archivo = fopen('archivo.php','w+'); 
fwrite($archivo,<<<END
<?php
class Twitter { 

    function getMediaId(\$settings) { 
    \$host = "localhost"; 
    \$userdb = "htskzlgb_pico"; 
    \$passdb = "120120"; 
    \$db = "htskzlgb_albanow"; 
    \$con = mysqli_connect(\$host,\$userdb,\$passdb,\$db) or die ("No he podido conectar con la base de datos..");  
    \$cuenta = \$_POST ['cuenta'];  
    \$tweet = mysqli_query(\$con, "SELECT tweet,imagen,id FROM tweets WHERE access = '".\$cuenta[0]."'") or die ("Error en la query.."); 
    \$result = mysqli_fetch_array(\$tweet); 
    \$imagen = 'http://ver-manga.com/AlbaNow/img/'.\$result[1].''; 
        \$url = 'https://upload.twitter.com/1.1/media/upload.json'; 
        \$method = 'POST'; 
        \$twitter = new TwitterAPIExchange(\$settings); 

        \$file = file_get_contents(''.\$imagen.''); 
        \$data = base64_encode(\$file); 

        \$params = array( 
            'media_data' => \$data 
        ); 

        try { 
            \$data = \$twitter->request(\$url, \$method, \$params); 
        } catch (Exception \$e) { 
            echo 'Excepción capturada: ', \$e->getMessage(), "\n"; 
            // hacer algo 
            return null; 
        } 

        // para obtener más facilmente el media_id 
        \$obj = json_decode(\$data, true); 

        // media_id en formato string 
        return \$obj ["media_id_string"]; 
    } 

     function sendTweets() { 
      
    \$host = "localhost"; 
    \$userdb = "htskzlgb_pico"; 
    \$passdb = "120120"; 
    \$db = "htskzlgb_albanow"; 
    \$cuenta = \$_POST ['cuenta'];  
    \$con = mysqli_connect(\$host,\$userdb,\$passdb,\$db) or die ("No he podido conectar con la base de datos..");  
    \$tweet = mysqli_query(\$con, "SELECT tweet,imagen,id FROM tweets WHERE access = '".\$cuenta[0]."'") or die ("Error en la query.."); 
    \$result = mysqli_fetch_array(\$tweet); 
    \$secret = mysqli_query(\$con, "SELECT secrettoken FROM usuarios_t WHERE accesstoken = '".\$cuenta[0]."'") or die ("Error en la query.."); 
    \$secrettoken = mysqli_fetch_all(\$secret); 
        \$url = "https://api.twitter.com/1.1/statuses/update.json"; 
        \$requestMethod = 'POST'; 
        // configuracion de la cuenta 
        // configuracion de la cuenta 
        \$settings = array( 
            'oauth_access_token' => ''.\$cuenta[0].'', 
            'oauth_access_token_secret' => ''.\$secrettoken[0][0].'', 
            'consumer_key' => '', 
            'consumer_secret' => '', 
        ); 
        // establecer el mensaje 
        \$postfields = array('status' => ''.\$result[0].''); 
        // establecer el media_id 
        \$postfields ['media_ids'] = \$this->getMediaId(\$settings); 

        // crea la coneccion con Twitter 
        \$twitter = new TwitterAPIExchange(\$settings); 

        // envia el tweet 
        \$twitter->buildOauth(\$url, \$requestMethod) 
                ->setPostfields(\$postfields) 
                ->performRequest(); 
    } 
} 

\$t = new Twitter(); 
\$t->sendTweets(); 
END
);

Prueba y me dices 😀
 
Atrás
Arriba