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 :

Parser du javascript dans une page html


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Parser du javascript dans une page html
    Bonjour à tous,

    Dans le cas d'une la réalisation d'une étude pour l'obtention d'une formation diplômante,
    j'aurais besoin de récupérer quelques informations dynamiques sur une page (évolution prix d'une cinquantaine de produits)
    J'ai bien sûr regarder comment parser un fichier avec php mais je dois bien avouer que ce n'est pas ma spécialié et du coup je rame à mort lol

    La page html ciblée présente plusieurs informations dont un tableau avec une courbe des tarifs.
    Ces informations sont affichées via javascript.

    extrait source de la page ciblée :
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <script type="text/javascript">
    	var currency = 'USD';
    	var currencySymbol = '$';
        var Chart = echarts.init(document.getElementById('price-history-content'));
        var line_check = '';
     
        // 
        if(line_check){
        	var option = {
    	         title: {
    		        text: ''
    		    },
    		    tooltip: {
    		        trigger: 'axis',
    				formatter:'<span>{b0}</span><br>' + ($.inArray(currency, ["RUB","UAH","MXN","TRY","VND"]) != '-1' ? ('{c0} '+currencySymbol) : (currencySymbol+' {c0}'))
    		    },
    		    legend: {
    		        data:['']
    		    },
    		    grid: {
    		        left: '2%',
    		        right: '4%',
    				top: '4%',
    		        bottom: '3%',
    		        containLabel: true
    		    },
     
    		    xAxis: {
    		        type: 'category',
    		        boundaryGap: false,
    		        data: ["2018-08-28","2018-08-30","2018-09-05","2018-09-08","2018-09-09","2018-09-11","2018-09-13","2018-09-16","2018-09-19","2018-09-21","2018-09-22","2018-09-25","2018-09-29","2018-09-30","2018-10-02","2018-10-11","2018-10-13","2018-10-19","2018-11-09","2018-11-11","2018-11-12","2018-11-14","2018-11-15","2018-11-17","2018-11-18"],
    				axisLine:{
    					lineStyle:{
    						color:'rgba(128,128,128,.3)'
    							 }
    				},
    				axisPointer:{
    					lineStyle:{
    						color:'rgba(128,128,128,.3)'
    							 }
    				},
    				splitLine:{
    					show: true,
    					lineStyle:{
    						color:'rgba(128,128,128,.3)'
    							 }
    				}
    		    },
    		    yAxis: {
    		        type: 'value',
    				axisLine:{
    					 lineStyle:{
    						 color:'rgba(128,128,128,.3)'
    					 }
    				},
    				splitLine:{
    					show: true,
    					lineStyle:{
    						color:'rgba(128,128,128,.3)'
    					}
    				}
    		    },
     
    		    series: [
    	             {
    	 	            name:'',//
    	 	            type:'line',
    					step: 'middle',
    	 	            data:["53.23","53.23","50.00","54.00","54.00","50.00","54.00","54.00","54.00","54.00","50.00","52.14","50.00","54.00","50.00","54.00","50.00","54.00","50.00","48.57","49.29","53.23","49.29","50.72","54.00"],
    					itemStyle : {  
    						 normal : {  
    							 color:'rgba(128,128,128,.3)',  
    							 borderColor:'#e963163',
    							 borderWidth:'2',
    							 lineStyle:{  
    								 color:'#e96163'
    							 }  
    						 }  
    					 },
    					 symbol: 'circle',
    					 symbolSize:'2'
    	 	        },
     
    		    ],....

    J'aurais besoin de récupérer les informations d'abscisse contenues dans xAxis: data:
    et d'ordonnée series: data:
    et de les afficher sous la forme :
    2018-08-28 | 53.23
    2018-08-30 | 53.23
    2018-09-05 | 50.00
    ...
    Il y a environ une dizaine de dates/tarifs par produits (50 produits à récupérer où je peux facielement prendr ele temps d'indiquer l'url à chaque fois bien sûr)
    Je précise que ma formation ne consiste pas à savoir parser une page :-)

    Merci d'avoir pris le temps de me lire, et merci par avance pour votre aide.

    Grib

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Bonsoir,
    si j’ai bien compris il s’agit essentiellement de récupérer des lignes commençant par 'data:'. Une petite expression rationnelle devrait suffire. Essaye ceci :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $pattern = '#data\\s*:\\s*\\[([^\\]]*)\\]#';
     
    preg_match_all($pattern, $text, $matches, PREG_SET_ORDER);
     
    foreach ($matches as $match) {
      var_dump($match);
    }

    Voir preg_match_all.
    Voir aussi le motif sur Regexper : https://regexper.com/#data%5Cs*%3A%5...D%5D*%29%5C%5D

    Ce n’est qu’un début, à toi de faire le reste
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je te remercie vivement Watilin, je vais regarder de plus près ton conseil aujourd'hui...

  4. #4
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    YESSS !!!! merci encore de ton aide précieuse, c'est en place .

    Et aussi merci pour les Cours et tutoriels pour apprendre JavaScript

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher une variable JavaScript dans une page html
    Par cybermembre dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2015, 10h49
  2. [RegEx] Ciblé les blocs Javascript dans une page HTML
    Par budhax dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2010, 15h24
  3. Affichage de XML grâce à du javascript dans une page HTML
    Par broise dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 30/07/2008, 10h41
  4. Réponses: 1
    Dernier message: 03/08/2007, 13h25
  5. Réponses: 3
    Dernier message: 28/12/2005, 15h29

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