Pergunta

Estou tentando me ensinar php ... então por favor seja gentil e tenha paciência comigo.

Eu estou tentando seguir este tutorial sobre a forma de arquivos de cache ... a página que eu quero para armazenar em cache é apenas HTML, para que eu tenha modificado o php para apenas lidar com dados. Eu sei que a parte caching está trabalhando, é quando eu tento modificar os resultados que eu recebo um "erro fatal capturável: Objecto do Caching classe não pôde ser convertido para string" na linha de str_replace abaixo

.

Eu tentei usar o __ método toString aqui , e eu tentei usar . Existe algo que eu estou perdendo?

Edit:. Ah, e eu até tentei operadores

 $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 );

Meu var_dump ($ caching); é a seguinte:

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

Ok, eu vejo agora que o problema é com o caching.php não retornar o valor para a string $ caching. Alguém pode verificar o link abaixo e me ajudar a descobrir por que ele não está funcionando? Obrigado!

Acabei de publicar todo o meu arquivo caching.php aqui .

Foi útil?

Solução

O código no site que você vincular obras baixando a página do URL que você dá e analisá-lo para os artistas e, em seguida, guardá-las para o arquivo cache. O cache-objeto contém apenas duas variáveis; filePath e apiURI. Se você quiser modificar a forma como a página é de análise e convertido para o XML-arquivo em cache, você deve alterar a função stripAndSaveFile.

Aqui está um exemplo de como modificar o Caching.php para fazer o que você queria:

  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);  
  }         

Editar:

Outra opção é estender a classe de Cache, em sua php-código usando a classe que você poderia fazer:

  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 );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top