PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-06-2012 09:39:53

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

probleme de substr pour adresse de repertoire

Bonjour à tous,
j'ai un petit soucis tout bête, mais je ne trouve pas la solution.
Je cherche à lire le contenu d'un dossier en fonction de la langue que je récupère dans l'url jusque là tout va bien.
Mon problème réside dans le fait que le chemin de mon document doit remonter d'un cran

url souhaitée : monsite.com/images/docs/composites/fr/Carbo stamp ud tape M0E AC-TE-008.pdf
url actuelle : monsite.com/fr/images/docs/composites/fr/Carbo stamp ud tape M0E AC-TE-008.pdf
Quand je modifie le substr de $lang, mes listes déroulantes sont vides sad

scan_docs.php

<?php
function lire_repertoire($repertoire)  {

global $dossierActu;
global $docs_ar;

$lang = substr($repertoire, -2, 2);
  $docs_ar = array();

if($lang == "fr" || $lang == "uk"){
  $folder = dir($repertoire);

    while ($fichier = $folder->read())
    {
    $path_parts = pathinfo($fichier);
   
    if ( $fichier != '.' && $fichier != '..' && $fichier!='index.php' && $fichier!='index.html')

     {  

      $sub_path =$repertoire."/".$fichier;

      if (is_dir($sub_path ) )

       {

      $dossierActu=$fichier;

      // $xml.='<item nom="'.$fichier.'">';

         lire_repertoire($sub_path);

        // $xml.="</item>";

      }

      else{

      $extension=$path_parts["extension"];

      // taille et poids du fichier ------------------------------------------------------------
     
        array_push($docs_ar, $fichier);

        // print_r($docs_ar);

        if($repertoire == "../images/docs"){

          foreach($docs_ar as $c => $v){

              echo utf8_encode("&".$c."=".$v);

            }

        }

      }

    }

    }

  }

};

  // lire_repertoire("docs");

?>

affichage des listes déroulantes

      <?php
  include("scan_docs.php");
 
  $adresse=$_COOKIE['30fccdf4e48b299739c96fcc177ac438']; // récupération de la langue dans l'url
  $adr = "/homez.60/monsite/www/clients/toray/images/docs/";
 
  if ($adresse=="fr-FR"){
    $lang = "fr";
  } if ($adresse=="en-GB"){
    $lang = "uk";
  }
 
?>
                <div class="carbone"><h2>carbone</h2><br />
<?php lire_repertoire($adr."fc_carac/".$lang);
        $docs ="<select name='fc_carac' size='1' id='fc_carac' onChange=\"MM_jumpMenu('parent',this,1)\">";
          $docs .= "<option>  ------  </option>";
          foreach($GLOBALS['docs_ar'] as $cle => $valeur){
            $docs .= "<option title=".substr($valeur, 0, -4)." value='images/docs/fc_carac/".$lang."/".$valeur."' >".substr($valeur, 0, -4)."</option>";
          };
          $docs .= "</select>";
          echo $docs;
      ?>
    </div>
      <div class="composites" style="float:left"><h2>composites</h2><br />
<?php
        lire_repertoire($adr."composites/fr");
      $comp ="<select name='composites' size='1' id='composites' onChange=\"MM_jumpMenu('parent',this,1)\">";
          $comp .= "<option>  ------  </option>";
          foreach($GLOBALS['docs_ar'] as $cle => $valeur){
            $comp .= "<option title=".substr($valeur, 0, -4)." value='images/docs/composites/".$lang."/".$valeur."' >".substr($valeur, 0, -4)."</option>";
          };
          $comp .= "</select>";
          echo $comp;
      ?>
    </div>
    <div class="autres"><h2>autres documents</h2><br />
<?php
        lire_repertoire($adr."divers/fr");
      $div ="<select name='divers' size='1' id='divers' onChange=\"MM_jumpMenu('parent',this,1)\">";
          $div .= "<option>  ------  </option>";
          foreach($GLOBALS['docs_ar'] as $cle => $valeur){
            $div .= "<option title=".substr($valeur, 0, -4)." value='images/docs/divers/".$lang."/".$valeur."' >".substr($valeur, 0, -4)."</option>";
          };
          $div .= "</select>";
          echo $div;
      ?>
    </div>
                </div>

Tout regard avisé est bienvenu smile

Hors ligne

#2 28-06-2012 12:23:17

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : probleme de substr pour adresse de repertoire

Saluton, Céline,

J'avoue ne pas trop comprendre le titre de ton post et le rapport avec ton problème et les scripts.
Le seul endroit où je vois un substr() c'est celui-ci

$lang = substr($repertoire, -2, 2);

Je pose donc une question, qu'entends-tu par

alhambra a écrit :

Quand je modifie le substr de $lang...


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 28-06-2012 17:08:59

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : probleme de substr pour adresse de repertoire

Bonjour,

Tu as deux solutions pour ton problème. Soit tu n'as pas le temps de trouver d'où vient ton problème, et en attendant tu mets une rustine à ton code en faisant un truc du style


if (strpos($path,'fr')>0){$path=str_replace('fr/','',$path);}
 

Soit tu gères ton problème proprement (solution finale à adopter) et tu corriges ton système de calcul de chemin relatif.
++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#4 28-06-2012 17:25:02

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : probleme de substr pour adresse de repertoire

Merci de ta réponse JC. Je vais temporiser comme ça le temps de me pencher plus avant sur la question pour comprendre d'où viens le soucis.

Hors ligne

Pied de page des forums