Script für Zufallsbild an PHP8 anpassen

cliodriver

Mitglied
danke, aber das hat nicht funktioniert

es soll ja auch kein Zeichen ausgetauscht, sondern die Zeichenkette auf dessen länge kontrolliert werden

das Script funktioniert auch so wie es soll
 
Zuletzt bearbeitet:

Yaslaw

alter Rempler
Moderator
Zeile 19 und 20 zusammen machen ein abschneiden von / am Ende des Strings. Mein Code ersetzt ein / am Ende des Strings durch ''. Macht also dasselbe.
Schade dass es nicht funktioniert und keine Fehlermeldung da ist um zu sehen was falsch ist.
 

cliodriver

Mitglied
leider weiß ich nicht mehr warum ich das so gebaut habe. es ist schon Jahre her *gg*

dies ist die echo-Ausgabe von $dir vor Zeile 18

projekte
projekte/IT Bereich
projekte/IT Bereich/FS Amilo XI2528
projekte/IT Bereich/FS Amilo XI2528/bilder
projekte/IT Bereich/HTPC Schlafzimmer
projekte/IT Bereich/HTPC Schlafzimmer/bilder
projekte/IT Bereich/HTPC Wohnzimmer
projekte/IT Bereich/HTPC Wohnzimmer/bilder
projekte/IT Bereich/Netbook Q10 Air
projekte/IT Bereich/Netbook Q10 Air/bilder
projekte/IT Bereich/Server
projekte/IT Bereich/Server/bilder
projekte/IT Bereich/Workstation
projekte/IT Bereich/Workstation/bilder
projekte/KFZ Bereich
projekte/KFZ Bereich/Clio RS
projekte/KFZ Bereich/Clio RS/bilder
projekte/KFZ Bereich/Clio Turbo
projekte/KFZ Bereich/Clio Turbo/bilder
projekte/KFZ Bereich/KTM 300 EXC
projekte/KFZ Bereich/KTM 300 EXC/bilder
projekte/KFZ Bereich/Megane RS
projekte/KFZ Bereich/Megane RS/bilder
projekte/KFZ Bereich/Sonderanfertigung
projekte/KFZ Bereich/Sonderanfertigung/bilder
projekte/KFZ Bereich/Takeuchi TB025
projekte/KFZ Bereich/Takeuchi TB025/bilder

es ist eine Auflistung aller Unterordner in denen nach Bildern für das Zufallsbild gesucht wird.

vermutlich wollte ich nur ein eventuell zu viel vorkommenden / entfernen.
 
Zuletzt bearbeitet:

Divo1984

Erfahrenes Mitglied
Also wenn ich jetzt nicht total daneben liege wird in Zeile 18 die Anzahl der Zeichen des Namens der Variable $dir gezählt.

PHP:
$len = strlen($dir);

In Zeile 19 fragst du ob der gezählte Wert - 1 = / entspricht? Was soll das?

PHP:
    if($dir{$len-1} == '/')

Ist doch klar, das da irgendwas nicht so wirklich passen kann? Ganz abgesehen davon das da andere Klammern hingehören würden und keine {} - siehe Code hier drüber.

Ich frage mich was diese Zeilen erreichen sollen?

Was ich also sagen will: $len-1 ergibt nen Zahlenwert und keinen / - da ist der Fehler.
 
Zuletzt bearbeitet:

cliodriver

Mitglied
Also wenn ich jetzt nicht total daneben liege wird in Zeile 18 die Anzahl der Zeichen des Namens der Variable $dir gezählt.

PHP:
$len = strlen($dir);

In Zeile 19 fragst du ob der gezählte Wert - 1 = / entspricht? Was soll das?

PHP:
    if($dir{$len-1} == '/')

Ist doch klar, das da irgendwas nicht so wirklich passen kann? Ganz abgesehen davon das da andere Klammern hingehören würden und keine {} - siehe Code hier drüber.

Ich frage mich was diese Zeilen erreichen sollen?

Was ich also sagen will: $len-1 ergibt nen Zahlenwert und keinen / - da ist der Fehler.
Danke für deine Antwort. Das Problem wurde bereits gelöst!
 

Sempervivum

Erfahrenes Mitglied
@Divo1984 Du verstehst da etwas falsch.
Bei dieser Zeile:
Code:
if($dir{$len-1} == '/')
soll geprüft werden, ob das letzte Zeichen in $dir ein Schrägstrich ist. Dabei werden geschweifte Klammern verwendet, um auf das letzte Zeichen des Strings zuzugreifen. Dies ist jedoch in PHP 8 nicht mehr zulässig und deshalb lief das Skript dort nicht. Verwendet man eckige Klammern funktioniert der Code und der Schrägstrich am Ende wird entfernt.
Der Code von @Yaslaw ist jedoch ein wenig eleganter und erfordert nicht so viele Schritte.