Fonction récursive PHP.

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ortolojf, 24 Avril 2021.

  1. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 596
    J'aime reçus:
    34
    Bonjour

    La fonction récursive ci-dessous, sert à parcourir un fichier JSON, pour produire un fichier HTML.

    La fonction $callback_out($key, $value) ne semble pas se déclencher à la fin du fichier JSON. Celà nécessiterait d'abord l'appel récursif de traverse($o, $callback_in, $callback_out).

    Comme c'est la fin du fichier JSON, l'appel est le premier appel externe, pour lequel il n'y a pas d'appel de $callback_out($key, $value).

    Celà fait , que la dernière balise fermante du fichier HTML n'est pas générée.

    Comment arranger traverse($o, $callback_in, $callback_out), pour que $callback_out($key, $value) soit lancée après l'appel externe de la fonction traverse() ?

    Merci beaucoup.


    PHP:

    <?php

    function traverse($o$callback_in$callback_out) {
            global 
    $len;
            foreach(
    $o as $key => $value) {
                    
    $value $o[$key];
                    if ((
    $value !== null) &&
                            (
    $value !== false) &&
                            ((
    is_object($value))||
                            (
    is_array($value)))) {
                            
    $callback_in($key$value);
                            
    traverse($value$callback_in$callback_out);
                            
    $callback_out($key$value);
                    } else {
                            
    $callback_in($key$value);
                    }
            }
    }
    ?>

     
  2. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 596
    J'aime reçus:
    34
    Rebonjour

    D'après Github, voici l'algorithme général de fonction récursive non terminale :

    Code:
     
    fonction avec retour T recursive(P)
    debut
        I0
        si (C) alors
            I1
        sinon
            I2
            recursive(f(P));
            I3
        finsi
    fin
    
    
    M'en vais investiguer.

    Amicalement.
     
  3. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 596
    J'aime reçus:
    34
    Voilà voilà

    C'était un problème de fichier json mal formatté.

    Excusez-moi.
     
  4. ZImm
    ZImm WRInaute discret
    Inscrit:
    26 Mars 2021
    Messages:
    133
    J'aime reçus:
    15
    Toujours penser à test la conformité d'un fichier (d'une variable), avant le traiter, surtout s'il provient d'une source tiers.
     
Chargement...
Similar Threads - Fonction récursive PHP Forum Date
Une aide pour une fonction récursive... Développement d'un site Web ou d'une appli mobile 18 Juillet 2022
fonction recursive Développement d'un site Web ou d'une appli mobile 20 Mai 2015
Fonction récursive et indentation des éléments Développement d'un site Web ou d'une appli mobile 28 Septembre 2011
Adresse mail ne fonctionne plus après modif de DNS Noms de domaine et référencement 26 Mai 2022
Méthode qui fonctionne le mieux en référencement SEO Débuter en référencement 19 Avril 2022
Onclick Select ne fonctionne pas dans Chrome Développement d'un site Web ou d'une appli mobile 21 Mars 2022
Des adresses qui ne fonctionnent plus... Développement d'un site Web ou d'une appli mobile 6 Novembre 2021
fonctionnement précis outil suppression url search console Débuter en référencement 18 Octobre 2021
PHP / CURL : interrogation page tiers ne fonctionne plus Développement d'un site Web ou d'une appli mobile 2 Octobre 2021
ma redirection ne fonctionne pas URL Rewriting et .htaccess 18 Août 2021
url rewriting ne fonctionne pas chez moi URL Rewriting et .htaccess 4 Août 2021
mon code ne fonctionne pas pour masquer les .php URL Rewriting et .htaccess 31 Juillet 2021
htaccess qui fonctionne partout sauf sur 1 seul PC URL Rewriting et .htaccess 28 Juillet 2021
La fonction mail (PHP) ne passe pas ! Demandes d'avis et de conseils sur vos sites 28 Juin 2021
Outil "Désavouer des liens" ne fonctionne plus Netlinking, backlinks, liens et redirections 18 Mai 2021
Annonces thématiques non fonctionnelles AdSense 6 Avril 2021
Récapitulatif Les CMP (Consent Management Platform) : intérêt, fonctionnement... Administration d'un site Web 30 Mars 2021
Activation suivi e-commerce et fonctionnement côté GA Google Analytics 15 Mars 2021
Problème de fonctions synchrone/asynchrone Développement d'un site Web ou d'une appli mobile 24 Janvier 2021
Redirection non fonctionnelle URL Rewriting et .htaccess 18 Septembre 2020