Beiträge: 2.267
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
17.07.2020, 16:05
(Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2020, 16:06 von Schnapsnase.)
Gut, ich möchte das eigentlich selbst realisieren, daher meine spärlichen Informationen.
Szenario:
In den Settings ist wahlweise folgendes gegeben
1. "./xyz.php" (Dateiname ist frei wählbar)
2. "./directory/xyz.php (Verzeichnis und Dateiname sind frei wählbar)
zu 1. wenn nicht existiert, dann im ftp anlegen - das ist kein Problem
zu 2. wenn nicht existiert, dann im ftp Verzeichnis anlegen und Datei anlegen - dabei scheitere ich, da ich hierfür eben den Verzeichnisnamen ohne den Punkt brauche.
Jetzt verstanden? Ich denke ja, dass ich es "einfach" replacen sollte?!
Beiträge: 1.136
Themen: 39
Registriert seit: 27.08.2014
17.07.2020, 17:24
(Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2020, 17:25 von itsmeJAY.)
Hi,
ja, kannst du durch Replace machen wenn es dir in der Situation hilft (ich kenne den Code ja nicht). Ich würde es aber vorher validieren, bevor du da irgendetwas ersetzt. Unten ein Beispiel ( falls du kein Codebeispiel haben willst, höre hier auf zu lesen).
Beispiel:
PHP-Code: $pfad = './directory/xyz.php';
$meinPfad = trim(pathinfo($pfad, PATHINFO_DIRNAME));
if (substr($meinPfad, 0, 2) == './') { $meinPfad = substr_replace($meinPfad, '', 0, 2); }
Das hier würde auch gehen:
PHP-Code: $meinPfad = str_replace("./", "", $meinPfad);
Allerdings würde PHP dann im gesamten String ./ mit nichts ersetzen. Bei der ersten Variante muss es an den ersten zwei Stellen stehen, sonst ersetzt PHP es nicht. Naja, wie auch immer.
Beiträge: 2.267
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
(17.07.2020, 17:24)itsmeJAY schrieb: (falls du kein Codebeispiel haben willst, höre hier auf zu lesen). Naja, so war`s ja nicht gemeint, aber ich wollte halt gerne...
(17.07.2020, 17:24)itsmeJAY schrieb: Beispiel:
PHP-Code: $pfad = './directory/xyz.php';
$meinPfad = trim(pathinfo($pfad, PATHINFO_DIRNAME));
if (substr($meinPfad, 0, 2) == './') { $meinPfad = substr_replace($meinPfad, '', 0, 2); }
Das hier würde auch gehen:
PHP-Code: $meinPfad = str_replace("./", "", $meinPfad);
Allerdings würde PHP dann im gesamten String ./ mit nichts ersetzen. Bei der ersten Variante muss es an den ersten zwei Stellen stehen, sonst ersetzt PHP es nicht. Naja, wie auch immer. An Deine 2. Lösung ("str_replace") hatte ich mich eigentlich geklammert, da mir nichts Besseres einfiehl.
Lösung1 liest sich auch gut, obwohl ich sie noch nicht vollständig verstehe.
Vielen Dank aber für die Unterstützung!! Ich werde Beides die Tage mal testen.
Grüße
Beiträge: 2.267
Themen: 33
Registriert seit: 25.05.2018
MyBB-Version: 1.8.38
(17.07.2020, 17:24)itsmeJAY schrieb: Beispiel:
PHP-Code: $pfad = './directory/xyz.php';
$meinPfad = trim(pathinfo($pfad, PATHINFO_DIRNAME));
if (substr($meinPfad, 0, 2) == './') { $meinPfad = substr_replace($meinPfad, '', 0, 2); }
Das hier würde auch gehen:
PHP-Code: $meinPfad = str_replace("./", "", $meinPfad);
Allerdings würde PHP dann im gesamten String ./ mit nichts ersetzen. Bei der ersten Variante muss es an den ersten zwei Stellen stehen, sonst ersetzt PHP es nicht. Naja, wie auch immer.
Hi JAY,
kurze Rückmeldung:
Ja, es funktioniert eigentlich Beides. Ich habe mich für die Variante (2) mit weniger Code entschieden.
Das die Zeichenkette (./) in meinem Fall im Pfad mehrmals vorkommt, ist nahezu unwahrscheinlich.
Vielen Dank nochmal für die geistige Unterstützung!
|