Vous n'êtes pas identifié(e).

  • Contributions :
  • Vos boîtes de messages privés sont vides.

Annonce

Participez au Concours Seo 2016 Officiel ! | Faites un bond en avant avec la formation SEO Ranking Skills le 12 Avril 2017

#26 2016-02-17 15:20:19

Mention DevForEver
Recruit
Inscription : 2016-02-16
Messages : 51

PHP
JAVA
DB Admin
Sécurité

Re : [Question PHP] Modifier html à la volée avec Simple HTML DOM

Je ne vois pas ce que tu veux dire par un itérateur en lecture seule, pour moi c'est un itérateur point. En effet tu peux modifier toutes les valeurs d'un array en passant par un foreach. Du coup je ne comprends pas ce que tu as voulu dire.

<?php
//itinéation en lecteur seule
$N = array(1, 2, 3);
$i = 0;
foreach ($N as $n) {
    $n = $i;
}
print_r($N);

//itinéation en lecteur/écriture
$N = array(1, 2, 3);
$i = 0;
foreach ($N as &$n) {
    $n = $i;
}
print_r($N);
?>

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Array
(
    [0] => 0
    [1] => 0
    [2] => 0
)

 

Dans ton cas, foreach remplace les valeurs car les variables ne sont pas les mêmes dans l'array à parcourir et la valeur à fixer.


C'est exactement ce que je fais, je ne parcours qu'une seule fois chaque noeud de de l'objet simple_html_dom

function parse($html){
      foreach($html->find('*') as $key => $tag){
        $array = $tag->children(-1);
        if ($array){
          parse($tag);
...
 

A vérifier, $html->find('*') parcourt à chaque fois l'ensemble du code HTML pour trouver les nodes.
Mets voir un compteur dans ta boucle pour trouver le nombre de fois où $html->find('*') est lancé.

tu utilises vraiment simple html dom ?
Comment faire ça était effectivement le problème à résoudre

J'utilise très rarement simple html dom et cie car bien souvent le code HTML des sites web est crade ou l'encode est foireux. Et donc le parseur HTML part en sucette.
La méthode en une passe utilise strpos pour trouver le début et la fin des tags HTML puis substr pour copier le code qui ne change pas. Pas sûr que cela apporte beaucoup dans le cas de spin hormis un défi de geek pour qques mses big_smile

Hors ligne

#27 2016-02-18 13:26:18

Mention Walid
Soldier
Inscription : 2013-02-07
Messages : 1 927

Sémantique
Audit et Analyse
Netlinking
PHP

Re : [Question PHP] Modifier html à la volée avec Simple HTML DOM

ciboulette a écrit :
Bigorno a écrit :

Sincèrement, je ne connais pas bien la classe domNode mais d'après ce que je vois sur la doc $node->nodevalue va te donner le plain text de node en question, mais aussi celui de ces enfants. Donc si j'ai <p>Salut <strong>les dev</strong></p>, lorsque je vais agir le plaintext du node correspondant à la balise <p>, je vais agir sur "salut les dev" sauf que j'aurai perdu les <strong></strong>

Le contenu textuel de ce noeud et de ces descendants.

Non la preuve :

Fichier source : http://www.woozy.fr/source.html

url du test : http://www.woozy.fr/test.php


Code :


    $doc = new DOMDocument;
    @$doc->loadHTMLFile('http://www.woozy.fr/source.html');
    $xpath = new DOMXPath($doc);
    $nodes = $xpath->query('//text()');
    foreach ($nodes as $node) {
      $node->nodeValue = str_replace("dev", "Bigorno", $node->nodeValue);
$node->nodeValue = str_replace("Salut", "Coucou", $node->nodeValue);
    }

    $output =  $doc->saveHTML();

 

Merci Ciboulette de m'avoir contacté sur skype

J'ai vérifier le test qui l'a mis en place et cela fonctionne parfaitement, sur deux remplacements, c'est très rapide, je vais tester grandeur nature pour me faire une idée définitive, mais tout porte à croire que c'est largement mieux que la méthode que j'ai utilisé. Je vous tiens au courant.


Fatigué du SEO sans résultats ? Je te propose :

1 => Un vrai Road Map SEO - 2 => Une Optimisation aux petits oignons - 3 => Des Prestations de Trust Linking
Mon Id Skype : walid.gabteni - Mon site : Light On SEO

En ligne

#28 2016-10-19 12:31:09

Mention Dukofo
Soldier
Inscription : 2015-07-21
Messages : 942

Netlinking
Networking SEO

Re : [Question PHP] Modifier html à la volée avec Simple HTML DOM

Tu est en où du coup @Bigorno quelle solution as tu choisi ?

Hors ligne

#29 2016-10-19 13:17:43

Mention Walid
Soldier
Inscription : 2013-02-07
Messages : 1 927

Sémantique
Audit et Analyse
Netlinking
PHP

Re : [Question PHP] Modifier html à la volée avec Simple HTML DOM

Hello, moi je fais encore du simple html dom, mais ciboulette ma montré comment il faisait avec dom document et xpath et ça marche très bien, même beaucoup plus rapide.

comme j'ai réussi à faire ce que je voulais, je me suis arrêté à simple html dom, mais pour faire les choses bien, je devrai utiliser la méthode proposée par ciboulette

Dernière modification par Walid (2016-10-19 13:20:29)


Fatigué du SEO sans résultats ? Je te propose :

1 => Un vrai Road Map SEO - 2 => Une Optimisation aux petits oignons - 3 => Des Prestations de Trust Linking
Mon Id Skype : walid.gabteni - Mon site : Light On SEO

En ligne

#30 2016-10-19 13:26:59

Mention Dukofo
Soldier
Inscription : 2015-07-21
Messages : 942

Netlinking
Networking SEO

Re : [Question PHP] Modifier html à la volée avec Simple HTML DOM

Ok merci, c'est au programme dans ma To Do.

Hors ligne

#31 2017-02-17 08:28:18

Mention Dukofo
Soldier
Inscription : 2015-07-21
Messages : 942

Netlinking
Networking SEO

Re : [Question PHP] Modifier html à la volée avec Simple HTML DOM

Je reviens un peu sur le sujet, tu utilises quoi comme dico @Bigorno ?
Un perso, ou un dico sur le net ?
Ou bien tu remplaces seulement quelques termes, ce que je me doute quand même big_smile

Hors ligne

Pied de page des forums