php objeto para String
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 .
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 );