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 :

Extraction de données d'une variable contenant un "stdClass Object"


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 59
    Points : 56
    Points
    56
    Par défaut Extraction de données d'une variable contenant un "stdClass Object"
    Bonjour

    Pour extraire des données de notre serveur téléphonique Cisco Call Manager, j'utilise les services web SOAP à disposition. Pas de souci pour récupérer les données brut. Par contre, je bloque sur l'extraction des variables.

    Voici mon code

    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
    $client = new SoapClient("C:\wamp\www\cucm\AXLAPI.wsdl",
        array('trace'=>true,
    	   'exceptions'=>true,
    	   'location'=>"https://".$host.":8443/axl",
    	   'login'=>$username,
    	   'password'=>$password,
    		)
    	);
     
    $payload = array(
            "searchCriteria"=>array("name"=>"SEPC80084AB5499"),
            "returnedTags"=>array("name"=>"",
                            "description"=>"",
                            "product"=>"",
                            "class"=>"",
                            "protocol"=>""
                            )
                        );
     
        $devices = $client->listPhone($payload);
     
    print_r($devices);
    En retour, j'ai cela dans ma variable $devices

    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
    stdClass Object
    (
        [return] => stdClass Object
            (
                [phone] => stdClass Object
                    (
                        [name] => SEP0022FBD0EF6A
                        [description] => 6474
                        [product] => Cisco IP Communicator
                        [class] => Phone
                        [protocol] => SCCP
                        [uuid] => {A87E2542-D775-44E5-B92A-69EB635C6E90}
                    )
     
            )
     
    )
    Comment extraire les données pour avoir une variable name, description, product ...etc... ? Je ne maitrise pas assez PHP et je ne sais pas extraire des données d'une variable contenant des classes.

    Merci d'avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Si tu connais le nom des propriétés, tu peux accéder par $obj->nom.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $retour = $devices->return;
    var_dump($retour);
    $phone = $retour->phone;
    var_dump($phone);
    $nom = $phone->name;
    var_dump($nom);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 59
    Points : 56
    Points
    56
    Par défaut
    Bonjour

    merci pour le retour. Cela fonctionne.

    Par contre, dans mon script, j'ai mis un filtre très précis de façon a n'avoir des informations que sur un seul téléphone. Si j'applique un filtre moins précis, j'obtiens cela et je bloque de nouveau. Je n'arrive pas a faire un foreach qui fonctionne. L'objectif est de récupérer tous les "name" pour ensuite les afficher sur la page web.
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    stdClass Object
    (
        [return] => stdClass Object
            (
                [phone] => Array
                    (
                        [0] => stdClass Object
                            (
                                [name] => SEPC80084AB5454
                                [description] => 6453
                                [product] => Cisco 7821
                                [class] => Phone
                                [protocol] => SIP
                                [uuid] => {7321342C-6CEC-4D61-AFF2-69104AFB4B92}
                            )
     
                        [1] => stdClass Object
                            (
                                [name] => SEPC80084AB5499
                                [description] => 6934
                                [product] => Cisco 7821
                                [class] => Phone
                                [protocol] => SIP
                                [uuid] => {BB9EDF7C-C701-4D67-89D7-92AA21BFB8A5}
                            )
     
                        [2] => stdClass Object
                            (
                                [name] => SEPC80084AB54AD
                                [description] => 6485
                                [product] => Cisco 7821
                                [class] => Phone
                                [protocol] => SIP
                                [uuid] => {243DE47C-43D0-4277-B9A6-87BDE8D2FA82}
                            )
     
                        [3] => stdClass Object
                            (
                                [name] => SEPC80084AB54C5
                                [description] => 7542
                                [product] => Cisco 7821
                                [class] => Phone
                                [protocol] => SIP
                                [uuid] => {CDD55871-08FC-49FE-890B-747513A9EB1F}
                            )
     
                        [4] => stdClass Object
                            (
                                [name] => SEPC80084AB54E0
                                [description] => 7731
                                [product] => Cisco 7821
                                [class] => Phone
                                [protocol] => SIP
                                [uuid] => {60F2D04D-2387-48CE-AB38-F93DCCCA6988}
                            )
     
                    )
     
            )
     
    )

Discussions similaires

  1. [RegEx] Extraction de données dans une chaine variable
    Par stormfever dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2012, 18h15
  2. Extraction de données dans une variable
    Par eudes dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/01/2010, 21h16
  3. Réponses: 2
    Dernier message: 14/10/2005, 10h11
  4. Réponses: 2
    Dernier message: 14/05/2004, 14h32

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