Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/08/2006, 23h01   #1
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
Par défaut Parser un fichier XML en PHP

Bonjour, j'ai parcouru pas mal de forums, sites et je suis toujours tombé sur une solution miracle pour afficher le contenu d'un fichier xml en php ... manque de bol ou de talent (de chance surtout ..) ca ne marche jammais ...

Voila mon fichier à lire :

Code :
http://fr.xml.clickintext.net/?v=1.0&ip=IP_DU_VISITEUR&a=790&is=1102&q=clickintext_default
SI vous voulez lire directement ce fichier il suffit d'indiquer une ip bidon pour le tester du style :
Code :
http://fr.xml.clickintext.net/?v=1.0&ip=16.196.148.14&a=790&is=1102&q=clickintext_default
Et je pense que si je veut introduire l'ip du visiteur je doit mettre dans le code ceci :

Code :
$_SERVER["REMOTE_ADDR"]
je n'ai qu'assigner cette variable a la variable $ipVisiteur

Et pour les mots clefs (c'est pour une regie pub) je n'ai qu'a mettre une variable qui alloue aléatoirement une valeur au mot clef selon une liste de mots ( de base = q=clickintext_default )


En principe ca marche, j'ai essayé aussi magpierss, rien a faire, aussi la fonction officielle de php5 .. non plus ... une véritable débacle.

Est ce que quelq'un peut me sortir de ce bourbier je devient cinglé ....
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2006, 23h10   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Qu'est-ce qui ne marche pas exactement ??
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2006, 23h26   #3
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
ben tout, soit ca me déforme la page, soit ca m'affiche un parse error a un numéro de ligne de code qui est ... vide

Et dans tout les cas cela ne m'affiche en aucun cas le contenu du fichier xml ..
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 07h59   #4
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Lorsque j'accède à ta page par le lien que tu donnes, je n'ai aucune erreur et le XML est affiché, alors si c'est pas exactement ça que tu recherches sois plus précis.

"déformer la page", je comprends pas.

Si tu as un parse error, poste-le avec un fragment de code. Mais d'abord, checke les lignes précédentes pour rechercher les point-virgules manquants, les parenthèses et accolades fermantes oubliées et autres inattentions de ce genre.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 14h45   #5
Invité régulier
 
Inscription : août 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 6
Points : 7
Points : 7
Bonjour,

En faites je pense qu'il veut récupérer les liens et mettre en page.

Voilà ce que j'ai fait, peu de commentaires mais ça fonctionne.

Voici la source, pas tres propre, il doit surement avoir un meilleur moyen:

Code :
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
 
<table width="650" border="0" align="center" cellspacing="0">
<tr>
<td>
 
<?php
//-----------------------------
//Liste de mots clés à rechercher
//-----------------------------
$liste = "casinos,voyage,credit";
 
//-----------------------------
//On partage les mots
//-----------------------------
$mots = explode(",", $liste);
 
//-----------------------------
//On compte le nombre de mots
//-----------------------------
$nombre = count($mots)-1;
 
//-----------------------------
//On sort un nombre au hasard
//-----------------------------
$rand = mt_rand(0, $nombre);
 
//-----------------------------
//On récupere l'ip du visiteur
//-----------------------------
$ip = $_SERVER['REMOTE_ADDR'];
 
//-----------------------------
//On initialise la page
//-----------------------------
$page = '';
 
//-----------------------------
//Url Clickintext
//-----------------------------
$url = "http://fr.xml.clickintext.net/?v=1.0&ip=$ip&a=790&is=1102&q=$mots[$rand]";
 
//-----------------------------
//Url d'une image vide
//-----------------------------
$no_image = "http://img.kelkoo.com/shopbot/19101/small/70/93/78/70937864.jpg";
 
//-----------------------------
//Lecture de l'url
//-----------------------------
$fp = fopen($url,"r"); 
 
while (!feof($fp)) 
{
 
	$page .= fgets($fp, 4096);
 
}
 
	function Return_Substrings($text, $sopener, $scloser)
	{
		$noresult = substr_count($text, $sopener);
		$ncresult = substr_count($text, $scloser);
 
		if ($noresult < $ncresult)
		{
		    $nresult = $noresult;
		}
		else
		{
		    $nresult = $ncresult;
		}
 
		unset($noresult);
		unset($ncresult);
 
		$t = 0;
 
		for ($i=0;$i<$nresult;$i++)
		{
	       $pos = strpos($text, $sopener) + strlen($sopener);
 
	       $text = substr($text, $pos, strlen($text));
 
	       $pos = strpos($text, $scloser);
 
	       $result[] = substr($text, 0, $pos);
 
	       $text = substr($text, $pos + strlen($scloser), strlen($text));
 
		}
		return $result;
 
	}
 
	$mot = ucwords( $mots[$rand] );
	$mot = str_replace('+', ' ', $mot);
 
	$result = Return_Substrings($page, "<url>", "</url>");
   	$url1 = $result[0];
   	$url2 = $result[1];
   	$url3 = $result[2];
   	$url4 = $result[3];
   	$url5 = $result[4];
 
   	$result = Return_Substrings($page, "<title>", "</title>");
   	$title1 = $result[0];
   	$title2 = $result[1];
   	$title3 = $result[2];
   	$title4 = $result[3];
	$title5 = $result[4];
 
	$result = Return_Substrings($page, "<description>", "</description>");
	$desc1 = $result[0];
	$desc2 = $result[1];
	$desc3 = $result[2];
	$desc4 = $result[3];
	$desc5 = $result[4];
 
	$result = Return_Substrings($page, "<image>", "</image>");
	$img1 = $result[0];
	if(empty($img1))
	{
		$img1 = $no_image;
	}
   	$img2 = $result[1];
	if(empty($img2))
	{
		$img2 = $no_image;
	}
   	$img3 = $result[2];
	if(empty($img3))
	{
		$img3 = $no_image;
	}
   	$img4 = $result[3];
	if(empty($img4))
	{
		$img4 = $no_image;
	}
   	$img5 = $result[4];
	if(empty($img5))
	{
		$img5 = $no_image;
	}
 
	echo '<p align="center"><b>Resultats de la recherche pour ' . $mot . '</b></p><br />';
	echo '<center><table align="center" width="468" border="1" cellpadding="5" cellspacing="0" bordercolor="#FFCC33">';
	echo '<tr><td><p align="justify"><a href="' . $url1 . '" target="_blank"><img src="' . $img1 . 'align="left" hspace="5" vspace="5" border="0"><font face="verdana" size="1">' . $title1 . '<br />' . $desc1 . '</font></a><br /><br /></p></td></tr>';
 
	if(!empty($url2))
	{
		echo '<tr><td><p align="justify"><a href="' . $url2 . '" target="_blank"><img src="' . $img2 . 'align="left" hspace="5" vspace="5" border="0"><font face="verdana" size="1">' . $title2 . '<br />' . $desc2 . '</font></a><br /><br /></p></td></tr>';
	}
	if(!empty($url3))
	{
		echo '<tr><td><p align="justify"><a href="' . $url3 . '" target="_blank"><img src="' . $img3 . 'align="left" hspace="5" vspace="5" border="0"><font face="verdana" size="1">' . $title3 . '<br />' . $desc3 . '</font></a><br /><br /></p></td></tr>';
	}
	if(!empty($url4))
	{
		echo '<tr><td><p align="justify"><a href="' . $url4 . '" target="_blank"><img src="' . $img4 . 'align="left" hspace="5" vspace="5" border="0"><font face="verdana" size="1">' . $title4 . '<br />' . $desc4 . '</font></a><br /><br /></p></td></tr>';
	}
	if(!empty($url5))
	{
		echo '<tr><td><p align="justify"><a href="' . $url5 . '" target="_blank"><img src="' . $img5 . 'align="left" hspace="5" vspace="5" border="0"><font face="verdana" size="1">' . $title5 . '<br />' . $desc5 . '</font></a><br /><br /></p></td></tr>';
	}
 
   echo '</table></center>';
 
fclose($fp);
 
?>
 
</td>
</tr>
</table>
J'espere t'avoir aidé. Les images de clickintext ne sont pas vraiment à jour donc j'ai ajouté une image, si une image est non dispo.
Mqrc_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 15h14   #6
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
Merci beaucoup ! je teste ca de suite

edit : c'est pas possible de fixer le nombre maxi d'annonces ? et de faire pour que les annonces se chargent une fois que toute la page est chargée ?

edit 2 : et si je veut supprimer les images ca marche encore ? (juste de la pub textuelle)
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 15h49   #7
Invité régulier
 
Inscription : août 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 6
Points : 7
Points : 7
Pour les images, il suffit de supprimer:

la variable no_image:

Code :
1
2
3
4
5
 
//-----------------------------
//Url d'une image vide
//-----------------------------
$no_image = "http://img.kelkoo.com/shopbot/19101/small/70/93/78/70937864.jpg";
Puis ce passage:
Code :
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
 
	$result = Return_Substrings($page, "<image>", "</image>");
	$img1 = $result[0];
	if(empty($img1))
	{
		$img1 = $no_image;
	}
   	$img2 = $result[1];
	if(empty($img2))
	{
		$img2 = $no_image;
	}
   	$img3 = $result[2];
	if(empty($img3))
	{
		$img3 = $no_image;
	}
   	$img4 = $result[3];
	if(empty($img4))
	{
		$img4 = $no_image;
	}
   	$img5 = $result[4];
	if(empty($img5))
	{
		$img5 = $no_image;
	}
Et enfin tous les img:
Code :
1
2
 
<img src="' . $img1 . 'align="left" hspace="5" vspace="5" border="0">
Par contre, ce n'est pas possible de fixer un nombre d'annonces car selon le mot clé, il y a le nombre d'annonces qui varie.

Imaginons que nous fixions 4 annonces alors qu'il n'ya que 2 resultats.

Par contre il est possible de fixer un nombre maximal d'anonces en reduisant le nombre de resultats.

Citation:
et de faire pour que les annonces se chargent une fois que toute la page est chargée ?
Désolé je ne sais pas et je ne pense pas que ça soit du domaine du php, mais peut etre JS (à voir...).
Mqrc_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 16h14   #8
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
Merci pour tes réponses claires et précises,
Je pense associer tout ca à une feuille de style CSS pour le rendre plus "zouli"
Aurait tu un dernier conseil à me donner pour optimiser le code que tu as fourni ? (est'il valide xHTML ?)
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 16h35   #9
Invité régulier
 
Inscription : août 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 6
Points : 7
Points : 7
De rien.

Le code html qui en ressort n'est pas valid xhtml. Il y a quelques erreurs faciles à corriger, à toi de voir.

Ca serait bien d'avoir l'url où tu vas incrementer ce code, afin de voir le résultat.

Pas de conseils à part que tu pourrais coupler les flux xml de clickintext à ceux de deepindex afin d'avoir plus de resultats et une remuneration plus forte.

Et si tu possedes un site à fort traffic, essaye de voir directement avec les sociétés de liens sponsorisés tels que miva ou yahoo et ainsi augmenter tes CPC, en retirant un intermédiaire.
Mqrc_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 16h51   #10
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
OK, pas de problémes.

Les pubs sont affichées sur toutes les pages de mon "www" =

http://Rentabiliser.info

mais je ne les affiche pas tout de suite, je les teste sur un serveur en interne jusqu'a ce que je trouve la meilleure facon de les afficher.
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 00h31   #11
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Ou si ca peut t'aider voici un "vrai" parser XML : Parseur XML ou ici Parser XML
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 20h23   #12
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
Oui, merci mais quitte a passer pour un con, je ne comprend strictement rien au code qui est affiché dans ces pages ... (bon si un peu mais bon ...) j'ai pas trouvé le manuel ^^
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 03h36   #13
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Tu as une sorte de manuel dans la signature d'Eusebius : Gestion du XML en PHP 5 : utiliser DOM
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 09h35   #14
Invité régulier
 
Étudiant
Inscription : mars 2006
Messages : 43
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 43
Points : 8
Points : 8
Envoyer un message via MSN à Le Parrain Envoyer un message via Skype™ à Le Parrain
Ok, merci

Je regarderait tout ca plus tard ( ==> c'est la rentrée .... )
Le Parrain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h58.


 
 
 
 
Partenaires

Hébergement Web