Content Callback

La fonction content callback située dans etc/content_callback.php vous permet de modifier le code source avant l'envoi au navigateur.

La fonction content callback située dans etc/content_callback.php vous permet de modifier le code source avant l'envoi au navigateur.


etc/content_callback.php

Si le fichier n'existe pas, ou si le fichier est vide, la fonction content_callback() n'est pas exécutée.

Voici un exemple d'utilisation, la variable $out contient l'ensemble de la page, header+content+footer.


<?php
function content_callback($out){
   return str_replace('http://','https://',$out);

}

Exemple un peu plus poussez utilisé sur ce site : Si un contenu HTML est présent dans une balise PRE et que celui ci n'est pas correctement encodé, alors on le remplace par sa version encodé :



function content_callback($out){
    # on va chercher tous les morceaux de code en preformatés
    preg_match_all('|(< pre ><code class="language[^"]*">)(.*)(</code></ pre >)|isU',$out,$m,PREG_SET_ORDER);
    foreach($m as $k=>$match){
        # si le contenu n'est pas htmlencodé, on l'htmlentities
        if(isset($match[2]) && !strstr($match[2], '>')){
            $out = str_replace($match[0], $match[1].htmlentities($match[2]).$match[3], $out);
        }
    }
    $out = preg_replace('|<span id="line[0-9]*"></span>|isU','',$out);
    return $out;
}