!! for schleife verwirrt mich !!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • !! for schleife verwirrt mich !!

    hallo zusammen ich habe zwei verschachtelte for schleifen die mir links erstellen für eine location ich übergebe per get einen string in der vorm

    html/php/huhu

    er nimmt diesen string auseinander mit explode und soll solche pfade erstellen

    html/

    html/php/

    html/php/huhu/


    aber ab den 3 link sieht die geschichte so aus:

    html/

    html/php/

    html/html/php/huhu/

    ich weiss absolut nicht warum !

    das array sieht so aus
    PHP-Code:
    array(3) { 
    [
    0]=>  string(5"html" 
    [1]=>  string(6"php" 
    [2]=>  string(4"huhu" 

    hier der code ist aber nur die blätter function also nur der betroffene teil !



    PHP-Code:
                    $pfad=explode("/"$_REQUEST['bla']);
                    for(
    $b=0;$b<$c=count($pfad);$b++) {
                        if(
    $c==1) {
                            
    $s=array('{ start }''{ start_once }');
                            
    $r=array($pfad[$b], $pfad[$b]);
                            
    $pfad_ausgabe .= template($s,$r,"templates/navi.tpl");
                        }else{
                            
    $s=array('{ start }''{ start_once }');
                            for(
    $n=0;$n<$b;$n++) {
                                
    $pfad_in .= $pfad[$n]."/";
                            }
                            
    $r=array($pfad_in.$pfad[$b], $pfad[$b]);
                            
    $pfad_ausgabe .= template($s,$r,"templates/navi.tpl");
                        }
                    } 
    ich hoffe ihr könnt mir helfen !
    aber ich habe noch ein zweites problem aber ich glaube das liegt nicht an php sonder an Ajax, der inhalt von einem dom objekt ist verändert gut das ist normal aber er escaped aufeinmal das & in &amp; und das soll er nicht denn dann funktionieren die links nicht mehr !

    wie verhindere ich das ?

    Danke schonmal tschöööö!!!
    Zuletzt geändert von washu; 10.01.2007, 10:44.

  • #2
    gehen wir mal systematisch vor, den if() teil kann ich weg lassen, weil $c == 3.

    das mit den platzhalten start sicher auch usw.

    bleibt also:

    PHP-Code:
    for($b=0;$b<$c=count($pfad);$b++) {
      
    $pfad_in '';
      for(
    $n=0;$n<$b;$n++)
        
    $pfad_in .= $pfad[$n]."/";
      echo 
    $pfad_in;

    was kommt raus?


    aber ich habe noch ein zweites problem aber ich glaube das liegt nicht an php sonder an Ajax, der inhalt von einem dom objekt ist verändert gut das ist normal aber er escaped aufeinmal das & in & und das soll er nicht denn dann funktionieren die links nicht mehr !

    wie verhindere ich das ?
    in dem zu zunächst selbst feststellst, wo die zeichen escaped werden. wenn du das weißt, sollte es wohl ein lechtes sein dagegen vorzugehen. Sieht mir aber im moment noch nicht so aus, als hättest du irgendwelche testausgaben gemacht...

    Kommentar


    • #3
      ich hab das mit deinem code ausprobiert das sollte ich doch oder ?

      leider bleibt das ergebnis gleich beim dritten lauf der schleife kommt das heraus

      html/html/php/huhu

      dein code würde nur dann gehen wenn ich ein Link erstellen würde z.b. zurück aber ich möchte für jedes verzeichnis einen link siehe ersten code sonst ist dein codeschnipsel gut und merk ich mir au

      zu meiner 2. frage

      das hat doch nix mit dom zutuhen hab eine ausgabe ohne ajax gemacht und er escaped das trotzdem !

      die ausgabe sieht so aus mit der fuction template

      PHP-Code:
      <a hef="javascript:request('reader?do=System& amp;starter=image', 'content');">
      mage</a>&nbsp;&nbsp;
      <
      a hef="javascript:request('reader?do=System& amp;starter=image/images', 'content');">
      images</a>&nbsp;&nbsp;
      <
      a hef="javascript:
      request('reader?do=System& amp;starter=image/image/images/huhu', 'content');"
      >
      huhu</a>&nbsp
      hab ein leerzeichen zwischen & und amp; gemacht damit der browser das anzeigt

      die function template sieht so aus

      PHP-Code:
      function template($search$replace$source) {
          
      $handle=fopen($source"rb");
          
      $read=fread($handlefilesize($source));
          
      fclose($handle);
          
      $ret=str_replace($search$replace$read);
          return 
      $ret;

      die schleife die das verzeichnis durch sucht sieht so aus

      PHP-Code:
      function crawler($dir)
      {
      $_datei=array();
      $_verzeichnis=array();
      $ergebnis=array();
          if (
      $handle = @opendir($dir)) {
             while (
      false !== ($file readdir($handle))) {
                 if (
      $file != "." && $file != "..") {
                     if(
      is_dir(($dir."/".$file))) {
                          
      $_verzeichnis[] = $file;
                      }else{
                          
      $_datei[]=$file;
                      }
                 }
             }
             
      closedir($handle);
          }else{
              echo
      'Fehler: whiledir';
          }
          
      $ergebnis[]=$_verzeichnis;
          
      $ergebnis[]=$_datei;
          
      //var_dump($ergebnis);
          
      return $ergebnis;

      ich hoffe das hilft weiter aber die ansetzte sind schon mal gut bin im guten glauben !

      achja das mit der if anweisung in der 2. schleife war
      unsinn von mir das kommt heraus wenn man am verzweifeln ist
      und ausserdem sollte statt $C ein $B dahin hatte mich vertippt
      hatte das mal geändert und ausprobiert ging aber leider au nich
      Zuletzt geändert von washu; 10.01.2007, 11:50.

      Kommentar


      • #4
        1)

        for($b=1;$b<=$c=count($pfad);$b++) {
        $pfad_in = '';
        for($n=0;$n<$b;$n++)
        $pfad_in .= $pfad[$n]."/";
        echo $pfad_in . "\n";


        2) Was genau stört dich daran?

        Kommentar


        • #5
          oh man ich danke dir tobi ich hab nur noch fehler rein gehauen ich muss wohl mal ne längere pause machen.

          du hast mir sehr geholfen ich habs jetzt hin bekommen das war so simpel !

          bis dann !

          ach ja noch die antwort auf deine letzte frag mich stört jetzt gar nix mehr daran ! rate mal ! mal wieder ein tipp fehler ich hatte mich die ganze zeit gefragt warum die Links nicht gehen, man sollte au href statt hef schreiben und man sollte au nicht .php hinter den dateinamen vergessen (siehe oben bei der linkausgabe) ne deshaklb mach ich erst mal pause kopf_schütel !

          Zuletzt geändert von washu; 10.01.2007, 14:25.

          Kommentar

          Lädt...
          X