Domanda

Sto cercando di insegnarmi php ... quindi per favore sii gentile e abbi pazienza.

Sto cercando di seguire questo tutorial su come memorizzare nella cache i file ... la pagina che voglio memorizzare nella cache è solo HTML, quindi ho modificato il php per gestire solo i dati. So che la parte di memorizzazione nella cache funziona, è quando provo a modificare i risultati che ottengo un errore irreversibile irreversibile: l'oggetto della classe di memorizzazione nella cache non può essere convertito in stringa " nella riga str_replace di seguito.

Ho provato a usare Metodo __ toString qui e ho provato a utilizzare serialize . C'è qualcosa che mi manca?

Modifica: Oh, e ho anche provato operatori di casting .

 $caching = new Caching( "my.htm", "http://www.page-I-want.com/" );
 $info = new TestClass($caching);
 $info = str_replace( "<img src='/images/up.jpg'>","<div class='up'></div>", $info );

My var_dump ($ caching); è il seguente:

object(Caching)#1 (2) { ["filePath"]=>  string(9) "cache.htm" ["apiURI"]=>  string(27) "http://www.page-I-want.com/" } 

Ok, ora vedo che il problema è che caching.php non restituisce il valore alla stringa $ caching. Qualcuno può controllare il link qui sotto e aiutarmi a capire perché non funziona? Grazie!

Ho appena pubblicato il mio intero file caching.php qui .

È stato utile?

Soluzione

Il codice nel sito che colleghi funziona scaricando la pagina dall'URL che hai fornito e analizzalo per gli artisti, quindi salvali nel file della cache. L'oggetto cache contiene solo due variabili; filePath e apiURI. Se si desidera modificare il modo in cui la pagina viene analizzata e convertita nel file XML memorizzato nella cache, è necessario modificare la funzione stripAndSaveFile.

Ecco un esempio di come modificare Caching.php per fare ciò che volevi:

  function stripAndSaveFile($html) {
        //mange the html code in any way you want
        $modified_html = str_replace( "<img src='/images/up.jpg'>","<div class='up'></div>", $html );
        //save the xml in the cache
        file_put_contents($this->filePath, $modified_html);  
  }         

Modifica:

Un'altra opzione è quella di estendere la classe Caching, nel tuo codice php usando la classe che potresti fare:

  class SpecialCaching extends Caching {
        var $html = "";
        function stripAndSaveFile($html) {
              //mange the html code in any way you want
              $this->html = $html;
        }
  }

  $caching = new SpecialCaching( "my.htm", "http://www.page-I-want.com/" );
  $info = $caching->html;
  $info = str_replace( "<img src='/images/up.jpg'>","<div class='up'></div>", $info );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top