Avatar billede mora Nybegynder
11. august 2000 - 16:27 Der er 4 kommentarer og
2 løsninger

Smart splittefunktion?

Jeg har et FTP system der gemmerer brugere således.

[brugernavn]
Password=password
HomeDir=c:\\
LoginMesFile=c:\\ftpmsgs\\morawelcome.txt
RelPaths=YES
AlwaysAllowLogin=YES
ChangePassword=YES
TimeOut=15
Access1=adgang 1
Access2=adgang 2
Note1=\"Noter linje 1\"
Note2=\"Noter linje 2\"


Nu vil jeg så have PHP til at åbne denne fil, læse indholdet(der er flere brugere mellem).
Og give mig mulighed for at bruge variablerne, yderligere skal jeg kunne vide hvor mange linjer noter der, hvor mange adgangs-regler(access1, access2, etc.) der er.


Senere skal PHP kunne overskrive en bruger med nye infos.
- Der kommer flere points, når jeg lige får set om noegn har en god ide...
Avatar billede chruker Nybegynder
11. august 2000 - 19:17 #1
Start med at dele filen op ved hjælp af linie skift (seperator = \\n eller \\n\\r).

Der efter checker du hver eneste linie i dit array. Når en linie start med [ ved du at det er en ny bruger. Hver gang du starter på en ny bruger nulstilles tællerne for access og note.
Avatar billede mora Nybegynder
12. august 2000 - 10:05 #2
Kan du ikke give et eksempel der skriver variablerne til skærmen, med echo eller print ?
Avatar billede lassehjorth Nybegynder
12. august 2000 - 12:26 #3
<?PHP
$file = \"ftp.ini\";
$fp = fopen(\"$file\",r);
$res = fread($fp,filesize($file));
$arr = explode(\"\\n\",$res);
while(list($key,$val) = each($arr)) {
      if(ereg(\"\\[(.*)\\]\",$val,$reg)) {
      $user = $reg[1];
      }     
      $bla = split(\"=\",$val);
      ${$user.\"_\".$bla[0]} = $bla[1];
}
echo $brugernavn_AlwaysAllowLogin;
?>

Prøv at bruge denne her til at starte med..
Avatar billede mora Nybegynder
12. august 2000 - 14:17 #4
Har lavet lidt ekstra i filen.
- Hvordan ved jeg hvormange access regler der er og hvor mange linjer noter der er?

Hvordan kan jeg ændre i filen, altså tilføje en er simpelt nok, men hvordan ændre jeg en eksisterende indgang ?




<?PHP
$userlist=\"\";
$file = \"ftp.ini\";
$fp = fopen(\"$file\",r);
$res = fread($fp,filesize($file));
$arr = explode(\"\\n\",$res);
while(list($key,$val) = each($arr)) {
    if(ereg(\"\\[(.*)\\]\",$val,$reg)) {
      $user = $reg[1];
$userlist=\"$userlist.$user\";
      }     
$bla = split(\"=\",$val);
${$user.\"_\".$bla[0]} = $bla[1];
}
$users=split(\"\\.\", $userlist);
$i=count($users);
$n=1;
while($n<$i){
$user=$users[$n];
$n=$n+1;
echo \"USER: $user<br>\";
echo \"Password:\".${$user.\"_\".Password}.\"<br>\";
echo \"Homedir:\".${$user.\"_\".HomeDir}.\"<br>\";
echo \"Login file:\".${$user.\"_\".LoginMesFile}.\"<br>\";
echo \"Relparts:\".${$user.\"_\".RelPaths}.\"<br>\";
echo \"Always allow login:\".${$user.\"_\".AlwaysAllowLogin}.\"<br>\";
echo \"ChangePassword:\".${$user.\"_\".ChangePassword}.\"<br>\";
echo \"Timeout:\".${$user.\"_\".TimeOut}.\"<br>\";
echo \"Accessrule 1:\".${$user.\"_\".Access1}.\"<br>\";
echo \"Accessrule 2:\".${$user.\"_\".Access2}.\"<br>\";
echo \"Note line 1:\".${$user.\"_\".Note1}.\"<br>\";
echo \"Note line 2:\".${$user.\"_\".Note2}.\"<br>\";
echo \"<hr>\";
}
?>
Avatar billede mora Nybegynder
12. august 2000 - 14:58 #5
Har forresten sat points op til 111  :)
Avatar billede mora Nybegynder
10. oktober 2000 - 23:05 #6
Hmm, løsningen kom jo aldrig helt :(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester