Bonjour,
Je suis encore très mauvais en php.
J'uilise une liste de dossiers récupérée de mon serveur grace à SimpleDom. Une fonction JS fait en sorte que, quand on clique sur les liens des dossiers, ça renvoie à un script qui fait ouvrir le dossier et affiche ce qu'il y a dedans.
liste Dossiers ->click-> dossier enfant->click -> photos.
Je souhaite que, quand on clique, les photos (car il n'y a que des photos) du dernier dossier ouvert s'affiche.
Mais pour ça, j'ai besoin de vérifier si les liens sont bien des liens de photos

    <?php 
// --Connection au serveur
$url = 'http://xxx/Medias/Photo/'; 
Require_once CORE.DS.'connectwebdav.php';
//--Chargement de la liste
require_once CORE.DS.'simple_html_dom.php';
$html = new simple_html_dom();
$html->load($serveur);
//-- Modification de l'HTML
foreach ($html->find('h1') as $title){
    $title->outertext = '';  //je supprime le titre
}

foreach ($html->find('a') as $a){     // je cherche les liens
    $a->id="lien1";    // pour utilisation ultérieure
    $ref = $url.$a->href; //je fabrique la nouvelle adresse
    $a->href = '#data'; // je change l'adresse du lien vers une ancre
    $a->onclick="myGetByAJAX('".$ref."')";  // je renvoie à la fonction JS pour cliquer
    }

$dossierphoto = $html->save();  //je sauvegarde la liste finale

while(file_exists($dossierphoto)){
$extension = array(strtolower(strrchr($ref2, '.')));
if ($extension == 'jpg'){
        print_r($extension);
    }else{
        echo $dossierphoto;
    }
}

Pour l'instant, mon premier problème est le suivant:
Je ne parviens pas a afficher les extensions.
Sans utiliser "While", ça me sort que la dernière, moi je veux l'extention de chacun de la liste.
Quand j'essaye d'utiliser la boucle, je n'ai rien qui s'affiche ?! Quelle erreur je fais ? je ne parviens pas à l'utiliser

3 réponses


Bonsoir.
Il te faut te décider dans une des deux notations.
Soit :

foreach ($html->find('h1') as $title) {
    // ...
}

Ou :

foreach ($html->find('h1') as $title):
    // ...
endforeach;

Mais pas les deux en même temps.

JoHuv
Auteur

Bonjour Lartak,
En effet, c'est rectifié. c'est étrange que cette partie fonctionnait bien d'ailleurs... Echo $dossierphoto; me sort bien une liste correcte.

Seulement, je n'arrive pas à sortir une liste d'extension. J'ai essayé tellement de choses !
A ce moment, je n'ai rien qui s'affiche. Ma page est là, mais la div qui doit accuellir cette liste est vide.

JoHuv
Auteur

Bonjour,
Il n'y a rien a faire: Je n'arrive pas à selectionner les extensions pour faire qqchose avec après.

<?php

if (isset($_POST['ref'])){ 
    $ref = $_POST['ref'];
    // Connection au serveur
    $url = $ref;
    Require_once '../core/connectwebdav.php';
    //-------------------------
    require_once '../core/simple_html_dom.php';
    $html2 = new simple_html_dom();
    $html2->load($serveur);
    foreach ($html2->find('h1') as $title){
        $title->outertext = '';

    }   
    foreach ($html2->find('a') as $a){ // je cherche les liens
        $a->id="lien1";
        $ref2 = $url.$a->href; //je fabrique la nouvelle adresse
        $a->href = '#data'; // je change l'adresse du lien vers une ancre
        $a->onclick="myGetByAJAX('".$ref2."')";

    }

$dossierphoto = $html2->save();  //je sauvegarde

foreach ($html2->find('a') as $on) {
        $info = pathinfo($on, PATHINFO_EXTENSION);
        var_dump($info);
        echo ($on);
    }

var dump donne: -> j'ai une liste sans aucune extension

string '' (length=0)
Parent Directory
string '' (length=0)
IMG_2518.JPG
string '' (length=0)
IMG_2519.JPG
string '' (length=0)
IMG_2521.JPG
string '' (length=0)
IMG_2527.JPG
string '' (length=0)
IMG_2539.JPG
string '' (length=0)

Echo($on) affiche: -> je n'ai que le dernier fichier.

Thumbs.db

Je suis dans une impasse...