Question

J'essaie d'apprendre moi-même php ... alors s'il vous plaît soyez gentil et supportez-moi.

J'essaie de suivre ce didacticiel . sur la façon de mettre en cache des fichiers ... la page que je veux mettre en cache est uniquement du code HTML. J'ai donc modifié le php pour gérer uniquement les données. Je sais que la partie de la mise en cache fonctionne, c’est lorsque je tente de modifier les résultats que je reçois une "Erreur fatale capturable: l’objet de la classe Caching n’a pas pu être converti en chaîne". dans la ligne str_replace ci-dessous.

J'ai essayé d'utiliser __ méthode toString ici et j'ai essayé d'utiliser sérialiser . Y a-t-il quelque chose qui me manque?

Modifier: Oh, et j'ai même essayé opérateurs de diffusion .

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

Mon var_dump ($ caching); est comme suit:

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

Ok, je vois maintenant que le problème vient du caching.php qui ne renvoie pas la valeur à la chaîne $ caching. Quelqu'un peut-il consulter le lien ci-dessous et m'aider à comprendre pourquoi cela ne fonctionne pas? Merci!

Je viens de publier l'intégralité de mon fichier caching.php ici .

Était-ce utile?

La solution

Le code sur le site que vous liez fonctionne en téléchargeant la page à partir de l'URL que vous avez fournie, en l'analysant pour les artistes, puis en l'enregistrant dans le fichier cache. L'objet cache ne contient que deux variables; filePath et apiURI. Si vous souhaitez modifier le mode d’analyse et de conversion de la page dans le fichier XML mis en cache, vous devez modifier la fonction stripAndSaveFile.

Voici un exemple de modification du fichier Caching.php afin que vous souhaitiez:

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

Modifier:

Une autre option est d’étendre la classe Caching, dans votre code php en utilisant la classe que vous pourriez faire:

  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 );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top