Teile aus einem Datenbankrecord extrahieren

tklustig

Erfahrenes Mitglied
Hallo Leute, folgender Code diene als Ausgangsbasis
PHP:
$id = $this->save_dateianhang($model, $model_dateianhang, $model_e, $bez, $bez_error, $anhang);
$model_folder = Dateianhang::find()
                                ->join('LEFT JOIN', 'e_dateianhang', 'e_dateianhang.id=dateianhang.id_e_dateianhang')
                                ->where(['id_mail_ausgang' => $id])->one();
                $folder = \frontend\models\AppEinstellung::getSpeicherOrt($model_folder);
                var_dump($folder);
                die();
var_dump liefert folgendes Resultat:
Code:
E:\xampp\htdocs\Yii2_Mail\frontend\controllers\MailAusgangController.php:135:string 'tklustig.ddns.net;admin;StrengGeheimes Passwort;/FTP_Server/Diverses/' (length=53)
Meine Frage ist nun folgende: Anhand welcher Stringfunktionen gelingt es mir am elegantesten, obigen String so zu shreddern,damit ich folgende neuen Variablen definieren kann
PHP:
$host = 'tklustig.ddns.net';
$username = "admin";
$password = "StengGeheimesPasswort";
$folder_ftp = "/FTP_Server/Diverses/";
 
Zuletzt bearbeitet:
Zum Beispiel so, wenn ich es richtig verstanden habe:

PHP:
<?php

$string = "E:\xampp\htdocs\Yii2_Mail\frontend\controllers\MailAusgangController.php:135:string 'tklustig.ddns.net;admin;StrengGeheimes Passwort;/FTP_Server/Diverses/'";

echo $string . "<hr>";

$teile1 = explode("'", $string);

echo $teile1[1] . "<hr>";

$teile2 = explode(";", $teile1[1]);

$host = $teile2[0];
$username = $teile2[1];
$password = $teile2[2];
$folder_ftp = $teile2[3];

echo "Host :" . $host ."<hr>Username :" . $username ."<hr> Passwort: " . $password ."<hr>Folder: " . $folder_ftp;
 
Oha. Dann erstellt die PHP-Funktion explode() also ein Array aus Strings, über das ich, beispielsweise so iterieren kann,korrekt?
PHP:
$extract_outer = explode("'",$folder);
$extract_inner=explode(";",$extract_outer[0]);
for($i=0;$i<count($extract_inner);$i++){
    echo $extract_inner[$i];
}
Auf die Idee wäre ich im Leben nüscht gekommen, zumal ich bisher weder implode() noch explode() benutzte.
Vielen Dank dafür...
P.S.:
Deine Lösung hatte einen kitzekleinen Schönheitsfehler,der in ein undefined offset:1 mündete. Habe es in meinem Code(siehe oben) korrigert. Funktioniert jetzt einwandfrei:)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück