Generer mapper og filer på ftp med php

Tags:    php

Hej Udvilker.

Jeg skal til at lave et halvt advanceret script "tror jeg".

Jeg har 3 domainer.

Jeg vil lave et script der laver 3 mapper under hinanden på et random af de 3 domains.

altså domain1.dk - domain2.dk - domain3.dk først skal den vælge et random af dem.

efter skal den lave 3 mapper under hinanden som dette link1.dk/mappe1/mappe2/mappe3. De 3 mappes navne skal også generes med random navn mellem a-z og gerne også 1-9. altså det vil ende med at se nogen lunde sådan her ud link1.dk/jhksdkjbsdkj/jsdjs/jsjsj mappernes link navne skal max være 10 cifre lange.

Og til sidst skal den lave en index.php fil i enden, hvor jeg også selv kan vælge hvad den skal inde holde af kode.


Altså hvis man trykker lav link! så laver den et ramdom link der ville se sådan ca sådan her ud. link1.dk/jhksdkjbsdkj/jsdjs/jsjsj/index.php

Jeg tænkte på om i vil prøve at lave et eksempel eller 2 på hvordan i ville løse denne opgave :)

Så jeg har noget at arbejde ud fra.

Godaften.
De bedste hilsner Kasper.



Indlæg senest redigeret d. 14.03.2016 21:19 af Bruger #21351
8 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 13 karma
Sorter efter stemmer Sorter efter dato
kører også på http://www.eksperten.dk/spm/1009676


hvor langt er du selv kommet ??
til at lave mapperne skal du anvende mkdir
hvis det skal laves via FTP
så kig på http://php.net/manual/en/function.ftp-mkdir.php

til et random nummer skal du anvende rand , og skal du have bogstaver ind i det også, så kig på shuffle

de 3 domains ligger du i et array, og bruger rand til at vælge hvilke du skal bruge


Og til sidst skal den lave en index.php fil i enden, hvor jeg også selv kan vælge hvad den skal inde holde af kode.


lyder som en form med en masse checboxe, og når den submittes laves en ny string ud fra de checboxe der submittes der så ligges i en fil

http://php.net/manual/en/function.file-put-contents.php
eller
http://php.net/manual/en/function.fopen.php



Jeg tænkte på om i vil prøve at lave et eksempel eller 2 på hvordan i ville løse denne opgave :)

Noope, vi kan hjælpe hvor du er gået i stå, og "sparke" dig i den rigtige retning, vi laver ikke dit arbejde
hvis du skal have færdigt arbejde, må du hyre en konsulent ind





Har det noget at gøre med jeg har sat $root forkert måske?

Nej, der er pga jeg har lagt
Fold kodeboks ind/udKode 

3 steder, fjern det fra de 2 første steder

den skal kun være i denne
Fold kodeboks ind/udKode 






Jeg har sat $root til den mappe jeg ønsker den skal starte med at generer mapperne i altså $root = "url/phptest/"

det er også korrekt
det er $root="url/phptest"; (uden slash)
jeg havde bare lagt det ud i en seperat variabel, fordi jeg ikke gider rette det 3 stader, da jeg har en anden root folder







Indlæg senest redigeret d. 16.03.2016 19:10 af Bruger #16075

Men den placer den bare i roden af ftp'en er det muligt at få den til at placere den i roden af den mappe filen generer den? :)

du angiver bare stien til mappen

$directory = "test/test2";
test2 bliver opretttet inde i test mappen

alternativt bruger du
http://php.net/manual/en/function.ftp-chdir.php
til at skifte bibliotek



Indlæg senest redigeret d. 16.03.2016 06:32 af Bruger #16075
jeg legede lidt med denne
http://php.net/manual/en/function.file-put-contents.php#96217


læg mærke til $hostname
Fold kodeboks ind/udKode 



ændret code, jeg har lagt din function i toppen, da det er en god praksis altid at have dem i toppen, eller bedst i externe file(r) der includeres, og fået den til at lave en index file
Fold kodeboks ind/udKode 


du skal selvføgelig ændre disse linjer:
$ftp_server = "example.com"; // virtuelt doamin
$conn_id = ftp_connect($ftp_server);
$ftp_user_name = "ftp_user"; // bruger jeg har opsat på min xampp, med rettigheder til example.com
$ftp_user_pass = "vov";

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// $root="url/phptest";
$root = "www_test";

indlæg du også kunne læse
http://php.net/manual/en/function.file-put-contents.php#96217
http://php.net/manual/en/function.file-put-contents.php#101408
http://php.net/manual/en/function.file-put-contents.php#105896




Jeg har fået skrevet noget der virker nu :). altså på en enkelt mappe.
Men den placer den bare i roden af ftp'en er det muligt at få den til at placere den i roden af den mappe filen generer den? :)

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 15.03.2016 22:44 af Bruger #21351
Så køre det for mig nu laver den 3 mapper efter hinanden det rigtige sted.

nu skal den så bare placere en index.php i enden af mapperne.
hvor jeg selv kan vælge indholdet.
Det vil være fint nok for mig hvis indholdet bare bliver skrevet i php koden, så kan jeg altid lave det om så jeg selv kan fyre indholdet i :=)

koden ser således ud nu:

Fold kodeboks ind/udPHP kode 





Først mange tusinder tak for det gode svar.

Det virker også næsten som ønsket, nu placere den bare en index fil i alle 3 mapper. det var meningen den kun skulle placere en i den sidste mappe.

Har det noget at gøre med jeg har sat $root forkert måske?

Jeg har sat $root til den mappe jeg ønsker den skal starte med at generer mapperne i altså $root = "url/phptest/"







Scriptet køre 100% som ønsket ind til videre nu.

Jeg kan godt se nu, hvorfor den skrev index'en i alle 3 filer.

Jeg vil rode videre med resten selv, da jeg er overbevidst om at sidste del af koden har jeg godt styr på, ellers kan det være i høre mere fra mig senere.

Godaften.
Og endnu engang tak for hjælp.





t