Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources 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 22/02/2011, 17h20   #1
Invité de passage
 
Inscription : février 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 14
Points : 1
Points : 1
Par défaut galerie photos à partir d'un dossier distant

Bonjour,

Voilà je réalise un site web qui contient une galerie photos.

Le problème, c'est que l'on me demande d'utiliser le dossier source qui contient ces photos, et ce dossier se trouve sur un autre hébergeur...

voici ou se trouve les photos: http://www.quatorziemeto.be/img/acti...4H/24h2009/gd/

Vu le nombre important de photos, quelle serait la méthode la plus simple pour ne pas écrire à chaque fois:
Code :
1
2
3
 
<img src="http://www.quatorziemeto.be/img/activites/24H/24h2009/gd/DSCN0004.jpg" alt="" />
<img src="http://www.quatorziemeto.be/img/activites/24H/24h2009/gd/DSCN0005.jpg" alt="" />
ect... pour chaque photos...

Merci d'avance pour vos réponses!
jptoco86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 18h02   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Hello

En faisant:
Code :
1
2
3
4
 
$xml = file_get_contents("http://www.quatorziemeto.be/img/acti...4H/24h2009/gd/");
$doc = new DOMDocument();
$doc->loadHTML($xml);
et en utilisant une XQuery pour extraire les balises img.

http://php.net/manual/en/class.domdocument.php
http://www.php.net/manual/en/class.domxpath.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 18h15   #3
Membre chevronné
 
Avatar de herch
 
Inscription : mai 2006
Messages : 654
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2006
Messages : 654
Points : 748
Points : 748
ou bien tu parses l'index retourné et tu extrais les images avec les regex

Code :
1
2
3
4
5
6
7
8
9
<?php
	$matches = array();
	$index = fopen("http://www.quatorziemeto.be/img/activites/24H/24h2009/gd", "r");
	while ($line = fgets($index)) {
		if (preg_match('/.*<a href="([\w]+.jpg)">.*/', $line, $matches)) {
			echo '<img src="http://www.quatorziemeto.be/img/activites/24H/24h2009/gd/'.$matches[1].'" alt="" /><br />';
		}
	}
?>
__________________
En essayant continuellement on finit par réussir.
Donc : plus ça rate, plus on a de chances que ça marche.
herch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 18h49   #4
Invité de passage
 
Inscription : février 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 14
Points : 1
Points : 1
Merci! Ça fonctionne...

Maintenant mon but est d'en faire une galerie qui afficherait les photos 8 par 8...
Ce qui me donnait en html:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ul>
    <li>
        <a href="...."><img src="...." /></a>
        <a href="...."><img src="...." /></a>
        ect...
    </li>
 
    <li>
        <a href="...."><img src="...." /></a>
        <a href="...."><img src="...." /></a>
        ect...
    </li>
    ect...
</ul>
Voilà, une idée de comment faire?

Merci d'avance!
jptoco86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 18h53   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Là franchement tu veux qu'on te fasse ton code à ta place.

Utilise soit un modulo dans un for (ou foreach) soit un LimitIterator:
http://www.php.net/~helly/php/ext/sp...tIterator.html
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h01   #6
Invité de passage
 
Inscription : février 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 14
Points : 1
Points : 1
Non je ne veux pas que l'on fasse le code à ma place...

Je veux simplement comprendre, je débute en php et je voulais savoir si ce que je voulais faire était possible... Si oui: comment, avec quelle méthode, ...

si on pouvait me donner un petit exemple commenté, ça serait sympas...

Merci
jptoco86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h58   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
C'est une boucle classique que tu dois utiliser.
L'algorythme est simple; tu parcours la liste d'éléments à afficher et tous les n éléments tu affiche un élément en plus.

Il y a plusieurs façons de faire mais la plus simple est d'utiliser un modulo (le modulo est le reste de la division euclidienne de a par b).

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
 
// Délarer un tableau de 24 élément tous définis à 'test'
$els = array_fill(0,24,'test');
 
// On garde le count dans une variable pour
// ne pas avoir à le recalculer à chaque
// iteration
$count_els = count($els);
 
// On commence à afficher la liste
echo "<ul>";
 
// On va ensuite itérer sur la liste
for ($i=0; $i<$count_els; $i++){
 
  // On affiche l'élément en cours
  echo "<li>{$els[$i]}-$i</li>";
 
  // On vérifie si l'index courant
  // est un multiple de 8 (0 est
  // exclu car 0/8 fait toujours 0)
  // et on ferme la liste en cours
  // pour en ouvrir une nouvelle
  if ($i !== 0 && $i % 8 == 0)
    echo "</ul><ul>";
}
 
// on ferme la dernière liste
echo "</ul>";
Produit:
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
 
<ul>
<li>test-0</li>
<li>test-1</li>
<li>test-2</li>
<li>test-3</li>
<li>test-4</li>
<li>test-5</li>
<li>test-6</li>
<li>test-7</li>
<li>test-8</li>
</ul>
<ul>
<li>test-9</li>
<li>test-10</li>
<li>test-11</li>
<li>test-12</li>
<li>test-13</li>
<li>test-14</li>
<li>test-15</li>
<li>test-16</li>
</ul>
<ul>
<li>test-17</li>
<li>test-18</li>
<li>test-19</li>
<li>test-20</li>
<li>test-21</li>
<li>test-22</li>
<li>test-23</li>
</ul>
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 01h29   #8
Invité de passage
 
Inscription : février 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 14
Points : 1
Points : 1
Un très grand merci pour ton explication!
Je vais essayer de m'en sortir avec ça...

Bonne continuation
jptoco86 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 11h27.


 
 
 
 
Partenaires

Hébergement Web