Linkausgabe Reihenfolge !?!

klausi89

Erfahrenes Mitglied
Hallo ich habe mal wieder ein kleines Problem und zwar kann ich über meinen Adminbereich links einfügen und diese werden in json dateien der Reihenfolge nach gespeichert - also 1.json 2.json 3.json usw - durch diesen Code

PHP:
$t = count(glob("../links/link/{*.json}",GLOB_BRACE));
$tplus = $t+1;
$finfo = array('name'=> $postname, 'url'=> $posturl, 'type'=> $posttype, 'min'=> $postmin, 'time'=> $posttime, 'favorite'=> $postfav);
$fjson = json_encode($finfo);
$dir = '../links/link/';
file_put_contents($dir.$tplus.'.json', $fjson);
diese werden nachfolgenden Shema gespeichert -->
1.json
2.json
3.json usw.

Das funktioniert auch alles soweit und wird über diesen code ausgegeben

PHP:
$load = $_GET['coin'];
$idload = $_GET['id'];
switch ($load) {
    case 'btc':
         if($idload == '0'){
         echo '<center>
         <ul class="button-group round even-6">       
         <li><a href="/view/links/1" class="button small success">'.$btnnext.'</a></li>
         </ul>
         </center>
         '.$adfbtc1.'
         <hr />
         <iframe id="fm" name="fm" src="/about.html" frameborder="0" scrolling="auto" width="1000px" height="950px"></iframe>';
         } elseif($idload == $tfbtc) {
         $btcgetf = file_get_contents('links/link/'.$idload.'.json');
         $ibtcget = json_decode($btcgetf, true);
         $getname = $ibtcget['name'];
         $geturl = $ibtcget['url'];
         $gettype = $ibtcget['type'];
         $getmin = $ibtcget['min'];
         $gettime = $ibtcget['time'];
         $idnext = $idload+1;
         echo '<div class="callout panel text-center"><b>'.$nametextview.'</b> '.$getname.'<b> '.$typetextview.'</b> '.$gettype.'<br /><b>'.$mintextview.'</b> '.$getmin.' <b>'.$timetextview.'</b> '.$gettime.$minutes.'</div>';
         echo '<center>
         <ul class="button-group round even-6">
         <li><a href="'.$geturl.'" class="button small" target="_blank">'.$btnview.'</a></li>
       
         <li>
         <form method="post" action="/reportlink" target="ventanaForm" onsubmit="window.open(\'\', \'ventanaForm\', \'\')">
         <input type="hidden" name="idreported" id="idreported" value="'.$idload.'">
         <input type="hidden" name="coinreported" id="coinreported" value="'.$load.'">
         <input type="submit" class="button small alert" value="'.$linkreport.'">
         </li>
       
         <li><a href="/links/link/0" class="button small success">'.$linknext.'</a></li>
         </ul>
         </center>
         <hr />
         <iframe id="fm" name="fm" src="'.$geturl.'" frameborder="0" scrolling="auto" width="1000px" height="950px"></iframe>';
         } else {
         $btcgetf = file_get_contents('links/link/'.$idload.'.json');
         $ibtcget = json_decode($btcgetf, true);
         $getname = $ibtcget['name'];
         $geturl = $ibtcget['url'];
         $gettype = $ibtcget['type'];
         $getmin = $ibtcget['min'];
         $gettime = $ibtcget['time'];
         $idnext = $idload+1;
         echo '<div class="callout panel text-center"><b>'.$nametextview.'</b> '.$getname.'<b> '.$typetextview.'</b> '.$gettype.'<br /><b>'.$mintextview.'</b> '.$getmin.' <b>'.$timetextview.'</b> '.$gettime.$minutes.'</div>';
         echo '<center>
         <ul class="button-group round even-6">
         <li><a href="'.$geturl.'" class="button small" target="_blank">'.$btnview.'</a></li>
       
         <li>
         <form method="post" action="/reportlink" target="ventanaForm" onsubmit="window.open(\'\', \'ventanaForm\', \'\')">
         <input type="hidden" name="idreported" id="idreported" value="'.$idload.'">
         <input type="hidden" name="coinreported" id="coinreported" value="'.$load.'">
         <input type="submit" class="button small alert" value="'.$linkreport.'">
         </li>
       
         <li><a href="/view/link/'.$idnext.'" class="button small success">'.$linknext.'</a></li>
         </ul>
         </center>
         <hr />
         <iframe id="fm" name="fm" src="'.$geturl.'" frameborder="0" scrolling="auto" width="1000px" height="950px"></iframe>';
         }
So nun zu meinem Problem dadurch das die Dateien durchnummeriert werden und ich eine lösche kommt es zum Fehler
bsp. 1.json
3.json

gibt es eine Möglichkeit das die Dateien nicht nach Nummerierung aufgerufen werden sondern einfach nur die nächste egal welche nummer die nächste Datei hat

ich bin mir nicht ganz sicher aber denke das das durch dieses generiert wird
PHP:
 $idnext = $idload+1;
wäre nett das sich das jemand mal angucken könnte und vielleicht eine Lösung dafür hat oder eventuell eine Idee wie man das anders lösen könnte.

Also quasi soll das script am besten folgendes machen - bei aufruf kommt sowieso als erstes die about.html mit einem klick auch den nextbutton - kommt datei 1.json - nächster klick 2.json - nächster 3.json - lösche ich z.bsp. datei 2.json - kommt er damit nicht mehr zurecht - also sollte er am besten aufrufen

about.html - nächste.json -> nächste.json -> nächste usw. wenn dann das ende der json dateien im ordner erreicht ist -> wieder zu about.html

Vielleicht hat jemand ne Idee wie man das umschreiben könnte -> über Hilfe wäre ich sehr dankbar

angeblich wäre das mit foreach möglich....nur wie ?

Danke schon mal
Lg
 
Zuletzt bearbeitet:
Alle Dateinamen in ein Array einlesen. Der Array hat einen Index. Dann kannst du über den Index die Date aufrufen

PHP:
function jsonFileFilter($fileName){
    return substr_compare(fileName, "json", -4, 4);
}

//Alle json-Files auslesen und mit einem neuen Index versehen
$files = array_values(array_filter(scandir($dir), 'jsonFileFilter'));

//Index beginnt bei 0
// Wenn also die Erste Datei die Nummer 1 hat, musst du das berücksichtigen

//Erste Datei
$firstJson = $files[$idload-1];
$nextJson = $files[$idload];
 
Ok danke schon mal für die schnelle Antwort.......

also datei 0 ( ist about.html) wird immer zuerst aufgerufen, die Datei liegt auch in einem anderen Ordner
könnte ich da nicht einfach die function integrieren und $idnext einfach mit $nextjson ersetzen

also wie genau ich das jetzt ins bestehende Script integrieren kann.
Ach mensch ich wäre so froh wenn ich PHP auch aus dem FF könnte.

lg
 
Mein Code war nur ein Beispiel. Bei deinem Code verstehe ich noch nicht ganz, wo du umgesetzt hast, was du im Text erklärst.
 
Zurück