Function et variable

Function et variable - PHP - Programmation

Marsh Posté le 10-11-2005 à 22:21:42    

Salut à tous,
J'utilise un script qui utilise des fonctions et je n'arrive pas à y faire passer une variable supplémentaire, y-a-t-il un moyen de faire passer la variable dans toutes la pages, en faisant: function abc($var1, $var2, $varsupplementaire), la $varsupplementaire ne passe pas ?

Reply

Marsh Posté le 10-11-2005 à 22:21:42   

Reply

Marsh Posté le 10-11-2005 à 22:38:22    

Il te faut une variable globale non pour faire ça? :??:


---------------
Feaks Forum
Reply

Marsh Posté le 10-11-2005 à 22:40:59    

Rien compris.

Reply

Marsh Posté le 10-11-2005 à 22:44:41    

réponse à comment que j'ai compris la question:
 
faut réécrire la fonction


---------------
oui oui
Reply

Marsh Posté le 10-11-2005 à 23:10:02    

il y a:
function fonctionBaliseFermante($parseur, $nomBalise)
et en écrivant:
function fonctionBaliseFermante($parseur, $nomBalise, $newvar)
ça ne fonctionne pas, en fait, l'appel de la fonction:
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
                                       , "fonctionBaliseFermante" );
 
J'ai déjà utilisé des fonctions, mais pas sous cette forme là avec du xml.


Message édité par polo7 le 10-11-2005 à 23:10:24
Reply

Marsh Posté le 15-11-2005 à 10:53:57    

Salut à tous,
J'ai tout essayé, mais je n'y arrive pas, il ne doit pas manquer grand chose.
J'ai récupéré un script et je l'ai adapté, mais j'ai besoin de faire passer un variable $var dans la fonction fonctionBaliseFermante. Le truc c'est que cette fonction est appelé par xml_set_element_handler je ne sais pas comment faire passer $var.
Le script ci-dessous:
 
<?
 
$var = 1;
$fichier = "nom_fichier";
 
if ($fichier)
{
 $fichier = "$fichier.xml";
 
    // Ma propre fonction de traitement des balises ouvrantes
    function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
    {
        // En fait... nous nous conteterons de mémoriser le nom de la balise
        // afin d'en tenir compte dans la fonction "fonctionTexte"
        global $derniereBaliseRencontree;
        $derniereBaliseRencontree = $nomBalise;
    }
   
    // Ma propre fonction de traitement des balises fermantes
    function fonctionBaliseFermante($parseur, $nomBalise, $var) // PROBLEME ICI LA VARIABLE $var NE PASSE PAS, MAIS OU FAUT-IL L'APPELER ???
    {
        global $derniereBaliseRencontree;
         
        global $data_01;
        global $data_02;
        global $data_03;
        global $data_04;
        global $data_05;
        global $data_06;
        global $data_07;
 
        switch ($nomBalise)
        {
            case "PDDT" :
               
    if (eregi("$var", $data_01))
    {
                 echo "<tr><td bgcolor=''>$data_01 - $data_02</td></tr>";
             }
             
                $data_01 = "";
                $data_02 = "";
                $data_03 = "";
                $data_04 = "";
                $data_05 = "";
                $data_06 = "";
                $data_07 = "";
                break;
        }
         
        // On oublie la dernière balise rencontrée
        // et tout le reste
        $derniereBaliseRencontree = "";
    }
 
    // Ma propre fonction de traitement du texte
    // qui est appelée par le "parseur"
    function fonctionTexte($parseur, $texte)
    {
        global $derniereBaliseRencontree;
         
        global $data_01;
        global $data_02;
        global $data_03;
        global $data_04;
        global $data_05;
        global $data_06;
        global $data_07;
         
        // Nous n'affichons pas le texte ou lien directement
        // nous attendrons de rencontrer la balise fermante
        // et ainsi d'avoir tous les élements avant l'affichage.
        // ATTENTION: Par défaut les noms des balises sont
        //            mises en majuscules
         
        switch ($derniereBaliseRencontree) {
            case "PAGR":
                $data_01 = $texte;
                break;
            case "DSC1":
                $data_02 = $texte;
                break;
            case "DSC2":
                $data_03 = $texte;
                break;
            case "DSC3":
                $data_04 = $texte;
                break;
            case "CPRI":
                $data_05 = $texte;
                break;
            case "EPRI":
                $data_06 = $texte;
                break;
            case "PQOH":
                $data_07 = $texte;
                break;
        }        
    }
 
    // Création du parseur XML
    $parseurXML = xml_parser_create();
 
    // Je précise le nom des fonctions à appeler
    // lorsque des balises ouvrantes ou fermantes sont rencontrées
    xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante", "fonctionBaliseFermante" );
 
    // Je précise le nom de la fonction à appeler
    // lorsque du texte est rencontré
    xml_set_character_data_handler($parseurXML, "fonctionTexte" );
 
    // Ouverture du fichier
    $fp = fopen($fichier, "r" );
    if (!$fp) die("Impossible d'ouvrir le fichier XML" );
 
    echo "<table border=2 bordercolor='red'>";
     
    // Lecture ligne par ligne
    while ( $ligneXML = fgets($fp)) {
        // Analyse de la ligne
        // REM: feof($fp) retourne TRUE s'il s'agit de la dernière
        //      ligne du fichier.
        xml_parse($parseurXML, $ligneXML);
     }
     
    xml_parser_free($parseurXML);
    fclose($fp);
 
 echo "</table>";
}
?>

Reply

Marsh Posté le 15-11-2005 à 12:42:07    

global $la_variable_que_tu_veux_utiliser_dans_la_fonction;
 
Vu qu'apparemment tu pourras pas la passer en argument.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-12-2005 à 23:07:10    

Bonjour,
Merci bien, j'avais essayé, mais ça ne fonctionnais pas, maintenant tout est OK, je l'ai mis au bon endroit et j'ai fait un GET de la variable url.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed