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 :

Extraire une page html avec les accents


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut Extraire une page html avec les accents
    Bonjour,

    Je galère un peu sur un script la en fait, donc j'aurais besoin d'un peu d'aide la ^^

    En gros voila ce que fait mon script (d'origine, le script de Olivier Népomiachty). Je lui donne l'url d'une application iphone sur le site d'apple et celui-ci récupère les lignes qui m'intéresse comme le titre, la description, etc..

    Bref, voila le 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
    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
     
    <?php
     
    require ('connect.php');
    require ('lib.php');
     
    if (!empty($_POST['id_apple']) AND !empty($_POST['id_store'])) {
     
    		echo '
    		<html>
    		<head>
    		<title></title>
    		<meta name="description" content="">
    		<meta name="keywords" content="">
    		<meta name="author" content="">
    		<meta name="generator" content="">
    		<link rel="StyleSheet" type="text/css" href="style1.css">
    		</head>
    		<body>
    		';
     
    	$id_apple = $_POST['id_apple'];
     
    	if ($_POST['id_store'] == "1") {
     
    		$url="http://ax.itunes.apple.com/app/id$id_apple?mt=8";
     
    	}
    	else {
     
    		$url="http://ax.itunes.apple.com/fr/app/id$id_apple?mt=8";
     
    	}
     
    	$html = file_get_contents($url);
     
    	$pos1 = strpos($html, "<div id=\"title\" class=\"intro\">");
    	$pos2 = strpos($html, "<li class=\"genre\">");
    	$data_brut = substr($html,$pos1,$pos2-$pos1);
     
    	// TITRE
    	$data=split("\n", $data_brut);
    	$no_ligne=1;
    	$titre = trim($data[$no_ligne]);
     
    	// DESCRIPTION
    	$data=split("\n", $data_brut);
    	$no_ligne=18;
    	$description = trim($data[$no_ligne]);
     
    	echo '<br /><br /><br />';
     
    	echo $titre;
    	echo $description;
     
    	echo '<br /><br /><br />';
    Donc la, il m'affiche bien le titre de l'application ainsi que la description mais avec plein de caractères du style "é" à la place des accents, caractères spéciaux, etc..
    Si par contre je fait un echo de la variable $html, j'ai bien la page entière de l'application et avec les bons caractères. J'image donc que le problème vient au moment ou je sélectionne les lignes que je veut prendre, ou quelque chose comme ca..

    Je vous remercie d'avance pour votre aide

  2. #2
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    test de faire pour l'affichage de la variable utf8_decode($variable) ou utf8_encode($variable)


  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    Oui je viens de trouver ca dans le manuel php.

    Donc j'ai testé et maintenant quand je suis l'Apple Store US je récupère bien le titre ainsi que la description voulue et en bonne forme

    Par contre quand je suis sur le FR, la position des lignes changent (avant non) et il manque des morceaux de balise "<", etc..

    Sinon j'avais penser à extraire les données sans les balises HTML de la page.

    Donc si je modifie de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function filtre_html($s) {
    	$s = str_replace("\r\n","<br />",$s);
    	$s = str_replace("\n","<br />",$s);
    	$s = str_replace("</TR>","</TR>\n",$s);
    	$s = strip_tags($s);
    	$s = str_replace("&nbsp;"," ",$s);
    	return($s);
    }
     
    $data_brut_tf8 = utf8_encode(substr(utf8_decode($html),$pos1,$pos2-$pos1));
    $data_brut = filtre_html($data_brut_tf8);
    Le HTML est bien partit mais tout le contenu reste sur une seule ligne :s

    Si vous avez des idées pour la première ou la deuxième méthode, je suis toujours preneur, et en vous remerciant d'avance

Discussions similaires

  1. VB6: Récupération des meta d'une page HTML avec HTMLDocument
    Par Matounet dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/09/2011, 07h55
  2. Réponses: 2
    Dernier message: 06/04/2009, 16h44
  3. valider une page html avec Dom
    Par harold63 dans le forum Langage
    Réponses: 3
    Dernier message: 02/06/2006, 08h34
  4. Réponses: 1
    Dernier message: 11/05/2006, 19h06
  5. Réponses: 7
    Dernier message: 14/09/2005, 10h50

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