Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Riportare classe in un file di testo

    Salve a tutti
    Dovrei creare un file di con estensione .php con file_put_contents() e riportare una classe su questo file
    la calsse è la seguente:

    Codice PHP:
    class database {
    private 
    $host "localhost";
    private 
    $namedb $dbname;
    private 
    $password $psw;
    private 
    $root "root";
    private 
    $dbconn;

    function 
    connect(){
    $this->dbconn mysqli_connect($this->host$this->rott$this->password$this->namedb);
    }
    ...

    ecco questo dovrei riscriverlo in un file nuovo php tramite file_put_contentc();

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,489
    La difficoltà qual è?
    Hai visto come funziona file_put_contents()?
    Il codice che hai postato devi renderlo una stringa, o più per comodità, e passarla alla funzione per scrivere il file.

  3. #3
    Ecco l oso che devo passarla a stringa ma come faccio con le variabili se ci provo mi da errore perché le variabili non sono inizializzate

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,489
    Al volo ho fatto così
    Codice PHP:
    $string = '<?php
    class database {
    private 
    $host "localhost";
    private 
    $namedb $dbname;
    private 
    $password $psw;
    private 
    $root "root";
    private 
    $dbconn;

    function 
    connect(){
    $this->dbconn mysqli_connect($this->host$this->rott$this->password$this->namedb);
    }
    ...
    ';

    file_put_contents('
    database.php', $string);
    e se poi apro il file database.php è tutto correttamente scritto, ovviamente le variabili saranno poi inizializzate quando istanzi la classe, che tra l'altro non è scritta bene, le assegnazioni di $namedb e $password dovrebbero trovarsi nel costruttore, non lì. Fuori dal costruttore vanno solo dichiarate, quindi
    Codice PHP:
    class database {
    private 
    $host;
    private 
    $namedb;
    private 
    $password;
    private 
    $root;
    private 
    $dbconn;

    function 
    __construct($dbname$dbpwd) {
        
    $this->host "localhost";
        
    $this->namedb $dbname;
        
    $this->password $dbpwd;
        
    $this->root "root";
    }

    function 
    connect(){
    $this->dbconn mysqli_connect($this->host$this->rott$this->password$this->namedb);
    }
    ...

    e quelle 2 variabili le passi quando istanzi la classe.
    Ultima modifica di Alhazred; 25-11-2024 a 18:37

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Al volo ho fatto così
    Codice PHP:
    $string = '<?php
    class database {
    private 
    $host "localhost";
    private 
    $namedb $dbname;
    private 
    $password $psw;
    private 
    $root "root";
    private 
    $dbconn;

    function 
    connect(){
    $this->dbconn mysqli_connect($this->host$this->rott$this->password$this->namedb);
    }
    ...
    ';

    file_put_contents('
    database.php', $string);
    e se poi apro il file database.php è tutto correttamente scritto, ovviamente le variabili saranno poi inizializzate quando istanzi la classe, che tra l'altro non è scritta bene, le assegnazioni di $namedb e $password dovrebbero trovarsi nel costruttore, non lì. Fuori dal costruttore vanno solo dichiarate, quindi
    Codice PHP:
    class database {
    private 
    $host;
    private 
    $namedb;
    private 
    $password;
    private 
    $root;
    private 
    $dbconn;

    function 
    __construct($dbname$dbpwd) {
        
    $this->host "localhost";
        
    $this->namedb $dbname;
        
    $this->password $dbpwd;
        
    $this->root "root";
    }

    function 
    connect(){
    $this->dbconn mysqli_connect($this->host$this->rott$this->password$this->namedb);
    }
    ...

    e quelle 2 variabili le passi quando istanzi la classe.
    Quindi devo mettere tutto anche il tag "<? Php" nella stringa io invece non lo facevo mette solo il testo

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,489
    Certo che devi mettercelo, non appare da solo.

  7. #7
    hai ragione che stupido che sono

  8. #8
    Scusami ti disturbo per ancora un po, io ho fatto questo:

    Codice PHP:
    $string = '<?php

    class database{

        public 
    $dbhost "'.$host_database.'";
        public 
    $namedb "'.$name_database.'";
        public 
    $dbpsw "'.$password_database.'";

        private 
    $host;
        private 
    $root;
        private 
    $password;
        private 
    $dbname;
        private 
    $dbconn;
        private 
    $result;

        function 
    __construct($dbhost$namedb$dbpsw) {
            
    $this->host $dbhost;
            
    $this->root "root";
            
    $this->password $dbpsw;
            
    $this->dbname $namedb;
        }
    ...
    }
    ?>';
    Le variabili le passa le scrive sul file ma mi da questo errore:
    Fatal error: Uncaught ArgumentCountError: Too few arguments to function database::__construct(), 0 passed in...


    Questo è il file creato:
    Codice PHP:
    class database{
        public 
    $dbhost "localhost";
        public 
    $namedb "auditwork";
        public 
    $dbpsw "";
        private 
    $host;
        private 
    $root;
        private 
    $password;
        private 
    $dbname;
        private 
    $dbconn;
        private 
    $result;
        function 
    __construct($dbhost$namedb$dbpsw) {
            
    $this->host $dbhost;
            
    $this->root "root";
            
    $this->password $dbpsw;
            
    $this->dbname $namedb;
        } 
    come vedi il contenuto delle variabili ci sono
    Ultima modifica di techno; 26-11-2024 a 11:44

  9. #9
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,512
    In verità dice che non le stai passando quando inizializzi la classe. quindi serve il codice con cui la inizializzi.

    Poi, per curiosità, a che scopo tutto questo? Cioè mettere la classe in un file e leggerlo?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.