IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier le code html du site en utilisant CURL et DOM


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Modifier le code html du site en utilisant CURL et DOM
    Bonsoir tout le monde.
    J’essaye de développer un composant pour l’optimisation des sites web et je test cet composant sur joomla .
    Donc,ce que j'ai réalisé jusqu'au là est :je récupère le contenu du site avec CURL PHP et je parse le contenu avec DOM pour modifier le code par exemple je modifier les balise <b> par <strong> , la position des scripts javascript …. Ensuite il faut appliquer ses modifications au site (charger ses modifications « le nouveau code html modifié » dans le site) mais j'ai pas trouver une solution pour modifier le site
    Donc, comment je peux le faire avec CURL ou avec une autre solution si existe ?
    vous trouvez un exemple de script que j'ai développé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
        $URLs = "http://localhost/...";// url of site
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $URLs);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, true);
        $source = curl_exec($ch);
        libxml_use_internal_errors(true);
        $dom = new DOMDocument();   
        $dom->recover = true;
        $dom->substituteEntities = true;
        $xhtml = (preg_match('/XHTML/', $source)) ? true : false;
                switch ($xhtml) {
                    case true:
                        $dom->loadXML($source);
                        break;
                    case false:
                        $dom->loadHTML($source);
                        break;
                }
        libxml_use_internal_errors(false);
        $body = @$dom->getElementsByTagName('body')->item(0);
                foreach (@$dom->getElementsByTagName('head') as $head) {
                    foreach (@$head->childNodes as $node) {
                        if ($node instanceof DOMComment) {
                            if (preg_match('/<script/i', $node->nodeValue)){
                                $src = $node->nodeValue;
                                 $moveme[] = $node;
                            unset($src);
                            }
                        }
                        if ($node->nodeName == 'script' && $node->attributes->getNamedItem('type')->nodeValue == 'text/javascript') {
                            if (@$src = $node->attributes->getNamedItem('src')->nodeValue) {
                                                } else {
                                $src = $node->nodeValue;
     
                            }
                             $moveme[] = $node;
                            unset($src);
                        }               
                    }
                }
                  foreach ($moveme as $moveit) {
                    $body->appendChild($moveit->cloneNode(true));
                    $moveit->parentNode->removeChild($moveit);
                }
                 $body = $xhtml ? $dom->saveXML() : $dom->saveHTML();
        //ici manque le code pour enregistrer les modifications dans le site
    Et merci d’avance pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comment le fichier d'origine a été publié ?
    Il faut procéder de la même façon.
    Si c'est du FTP, il faut utiliser du FTP.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    c'est en local.j'ai pas utiliser du ftp.
    Je vous explique plus ce que je suis entrain de faire.
    J’essaye de développer un composant comme les composants et les plugins de joomla mais la différence est que mon composant est développé en PHP (donc je n’utilise pas le JFACTORY …. De joomla)
    Donc le composant va être installé dans les sites CMS,
    Le but de mon composant est effectué quelque optimisation au site automatiquement sans que l’administrateur du site l’applique lui même

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as alors simplement besoin de faire ton "save" sur l'emplacement du fichier d'origine non ?

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Voulez vous dire que je fais save(acceuil.html)
    il n'existe pas de fichier d'origine comme par exemple acceuil.html .je travaille sur les sites CMS

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ah oui effectivement je suis bête.

    Du coup tu ne peux pas faire comme ça.
    Tu peux par contre lire le contenu des articles uniquement et faire la correction directement dans la base de données.

    A noter pour ton exemple que la balise <strong> n'est pas un remplacement de la balise <b>.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    mais mon but n'est pas de modifier l'article
    Pourquoi elle n'est pas un remplacement,ils ont le meme effet ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu veux modifier quoi alors ? les templates ?

    <strong> est une balise de contenu, elle indique que le texte est plus important
    <b> est une balise de presentation, elle indique que le texte doit être mis en valeur

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    le code html,css,js (minifier les fichier js,css),conbiner les fichiers css ou js dans un seul fichier.....

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je pense que tu devrais commencer par te renseigner sur l'organisation de Joomla avant de continuer ton projet.

Discussions similaires

  1. modifier le code html de mon blog overblog
    Par mikesquake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/07/2010, 18h03
  2. Modifier le code HTML
    Par saturne77 dans le forum Apache
    Réponses: 1
    Dernier message: 04/05/2009, 22h42
  3. [HTML] code html sur site msn
    Par hassine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/03/2009, 07h59
  4. code html sur site msn
    Par hassine dans le forum Windows
    Réponses: 0
    Dernier message: 18/03/2009, 13h56
  5. Comment modifier le code de mon site ?
    Par car-design83 dans le forum Débuter
    Réponses: 9
    Dernier message: 16/05/2008, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo