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 :

Blocage d'un script


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 134
    Par défaut Blocage d'un script
    Bonjour,

    J'ai créé un script via Extraction de données sur un site internet celui-ci fonctionne bien. Cependant depuis que j'ai ajouté la boucle While et la fonction Flush() (fonction pas encore très claire pour moi) le script bloque et n'affiche pas les résultats.

    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
    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
    <?php
     
    function filtre_html($s) {
    $s = str_replace("\r\n","",$s);
    $s = str_replace("\n","",$s);
    $s = str_replace("</TR>","</TR>\n",$s);
    $s = strip_tags($s);
    $s = str_replace("&nbsp;"," ",$s);
    return($s);
    }
     
    function Recherche($Nom_Film)
    {
     
    $Url = "http://www.allocine.fr/recherche/?motcle=".$Nom_Film ;
     
    $ch = curl_init($Url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($ch);
    curl_close($ch);
    // On récupére la partie global des infos
    $pos1 = strpos($html, "<h2 class=\"SpBlocTitle\" >Films <h4>");
    $pos2 = strpos($html, "<h2 class=\"SpBlocTitle\" >Séries TV <h4>",$pos1);
    $data_brut = substr($html,$pos1,$pos2-$pos1);
    // On récupére la Ligne d'un Film
    $pos_ligne_1 = strpos($data_brut, "<td valign=\"top\"><h4>");
    $pos_ligne_2 = strpos($data_brut, "</a></h4>",$pos_ligne_1);
     
    	while ($pos_ligne_1 & $pos_ligne_2) {
    		// On extrait le Titre
    		$ligne=substr($data_brut,$pos_ligne_1,$pos_ligne_2-$pos_ligne_1);
    		$titre = trim(strip_tags($ligne));
     
    		if ($titre!='Plus...') {
    		// On extrait l'url	
    			$pos_url_1 = strpos($ligne, "<a href=\"");
    			$pos_url_2 = strpos($ligne, "\" class=\"link1\">", $pos_url_1);
    				if ($pos_url_1 & $pos_url_2) {
    					$pos_url_1+=strlen('<a href="');
    						if ($ligne[$pos_url_1]=='/') $pos_url_1++; 
    							$url = "http://www.allocine.fr/" . substr($ligne,$pos_url_1,$pos_url_2 - $pos_url_1);
    								// on affiche le titre et on pré-coche le premier bouton radio
    								// l'utilisateur pourra cliquer sur le titre et ouvrir une nouvelle 
    								// fenêtre avec la fiche du film
    								$LigneFinal = " <a href=" .$url. "><b>". $titre . "</b></a> ";
    				}
    			}
    	echo str_pad(" ",300);
    	echo "\n";
    	ob_flush();
    	flush();
    	}					
    return $LigneFinal;    
    }
     
    require_once "Donnees/Fonctions.php";
    set_include_path(get_include_path() . ":/home/boby1500/www/PEAR");
    require_once "HTML/QuickForm.php";
    $form = new HTML_QuickForm('Inscription', 'post','','');
    $form->addElement('header','Recherche','Recherche du Film...');
    // Création des Champs...
    $form->addElement('text', 'Nom_Film', 'Nom du Film : ');
    $form->addElement('submit', 'Bt_Envoyer', 'S\'inscrire');
    // 	Régle du formulaire...
    $form->addRule('Nom_Film', 'Aucun Titre n\'a été tapé', 'required', '', 'client');
    $form->applyFilter('Nom_Film','trim') ;
    $form->applyFilter('Nom_Film','urlencode') ;
    if ($form->validate()) 
    	{	
    	$Nom_Film = $form->exportValue('Nom_Film');
    	echo "<b>Résultat pour : ".urldecode($Nom_Film)."</b><br>";
    	echo Recherche($Nom_Film);
     
    	}
    	else
    	{
    	$form->display();
    	}
    ?>
    Si une personne connait la solution, ce serai aimable qu'il la partage car là je suis vraiment coincé, surtout que j'avais quasiment fini mon script à la base.

    Merci....

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 48
    Par défaut
    Salut.
    J'ai créé un script via Extraction de données sur un site internet
    Excuse moi je ne comprend pas la maniére dont tu as créer ton script.
    L'as-tu fait en ligne?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 134
    Par défaut
    Je l'ai créé avec dreamweaver, mais j'ai utilisé le tutorial Extraction de données sur un site internet

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut à chaud comme ça...
    Bonjour!
    déjà juste à chaud sans trop réfléchir, je mettrais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ( $_pos_ligne_1 !== FALSE && $_pos_ligne_2 !== FALSE ) {
    ton code...
    }
    Pour strpos j'ai l'habitude de le traiter comme ça, et ça marche assez bien.
    Etant donné que cette fonction renvoie false ou un entier, ton test n'est pas très précis.
    http://fr.php.net/function.strpos

    Au niveau du "blocage" du script, il te plante le navigateur? Il fait une erreur?
    Parce que s'il y a boucle infinie, il se peut que l'oubli du second "&" y soit pour quelque chose.

    Voilà juste ce qui me vient à l'esprit pour le moment, j'espère que ça t'aidera.

Discussions similaires

  1. Blocage aléatoire d'un script PHP
    Par scrouet dans le forum Performance Web
    Réponses: 1
    Dernier message: 11/05/2011, 12h28
  2. Mise en page ccs ou table et blocage de script
    Par Finelarme dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/12/2008, 06h32
  3. Blocage script après inclusion classe MySQL
    Par Alomon dans le forum Langage
    Réponses: 10
    Dernier message: 15/09/2008, 09h16
  4. Blocage des scripts IE7
    Par Cuicui45 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/01/2008, 11h02
  5. [Système] Blocage lors du lancement d'un script
    Par tintin22 dans le forum Langage
    Réponses: 9
    Dernier message: 17/02/2007, 12h30

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