Verbesserungsvorschlag
Naps
- php
Hi,
ja ich weis der Titel sagt nicht viel aus nur weiß ich nicht wirklich wonach ich suche.
Mir kommt vor als würde es da eine andere Möglichkeit geben als die meine, nur komm ich da nicht drauf:
<?php
$dirName = $random->random_text(20);
while(is_dir($dirName) == TRUE){
$dirName = $random->random_text(20);
}
?>
Gibts da vielleicht eine Möglichkeit um nicht 2 Mal '$dirName = $random->random_text(20);
' zu schreiben?
MfG
Naps
Hi!
<?php
$dirName = $random->random_text(20);
while(is_dir($dirName) == TRUE){
$dirName = $random->random_text(20);
}
?>
> Gibts da vielleicht eine Möglichkeit um nicht 2 Mal '`$dirName = $random->random_text(20);`{:.language-php}' zu schreiben?
Du kannst den Vergleich auf true weglassen. is\_dir() liefert bereits einen booleschen Wert. Den nochmal zu befragen ob er wahr ist, ist unnötig.
Weiterhin solltest du dir mal [do-while](http://de.php.net/manual/en/control-structures.do.while.php) anschauen.
Lo!
Du kannst den Vergleich auf true weglassen. is_dir() liefert bereits einen booleschen Wert. Den nochmal zu befragen ob er wahr ist, ist unnötig.
ok...
Weiterhin solltest du dir mal do-while anschauen.
Dann sollte das ja so funktionieren!?
do {
$dirName = $random->random_text(20);
} while(is_dir($dirName));
Moin!
<?php
$dirName = '.';
while(is_dir($dirName) == TRUE){
$dirName = $random->random_text(20);
}
?>
Du kannst (wenn Du darfst!) aber auf Linux-Systemen auch mktemp -d
benutzen.
<?php
$dirName=`mktemp -d`;
?>
Beachte die Backticks. (`)
mktemp -d erzeugt ein Verzeichnis im temp-Ordner und gibt den Name des angelegten Verzeichnisses zurück.
mktemp -d --tmpdir=./test/ legt das Verzeichnis im aktuellen Verzeichnis, Unterverzeichnis test an.
mktemp -d --tmpdir=/srv/www/htdocs/web17 legt das Verzeichnis im Verzeichnis /srv/www/htdocs/web17 an.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Moin!
Du kannst (wenn Du darfst!) aber auf Linux-Systemen auchmktemp -d
benutzen.
Da kein Linux kann ichs so leider nicht machen...
Danke, MfG
Naps
Moin!
Da kein Linux
Unter BSD müsste es eigentlich auch so gehen :)
Du meinst doch nicht etwa Du hast Windows als OS?
Wer macht denn sowas?
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Da kein Linux
Unter BSD müsste es eigentlich auch so gehen :)
Du meinst doch nicht etwa Du hast Windows als OS?
Wer macht denn sowas?
^^... Gott sei dank nicht! Ich meinte eher dass ich's nicht nur für Linux machen kann/will.
MfG
Naps
Hi,
Mir kommt vor als würde es da eine andere Möglichkeit geben als die meine,
Klar - man könnte ein *sinnvolles* Script schreiben;
deins ist keins.
<?php
$dirName = $random->random_text(20);
while(is_dir($dirName) == TRUE){
$dirName = $random->random_text(20);
}
?>
Das kann eine beliebig lang bis unendlich laufende Schleife ergeben (kommt z.T. auf die Qualität deiner random\_text-Methode an).
Vielleicht möchtest du lieber sowas wie uniqid() verwenden?
MfG ChrisB
--
The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]
Klar - man könnte ein *sinnvolles* Script schreiben;
deins ist keins.
Na dann her mit den Vorschlägen...
<?php
$dirName = $random->random_text(20);
while(is_dir($dirName) == TRUE){
$dirName = $random->random_text(20);
}
?>
>
> Das kann eine beliebig lang bis unendlich laufende Schleife ergeben (kommt z.T. auf die Qualität deiner random\_text-Methode an).
Da mach ich mir nicht so viele Sorgen. Die "Qualität" ist denk ich sehr gut, und da der Ordner am Ende wieder gelöscht wird sind keine Unmengen an Ordnern vorhanden.
>
> Vielleicht möchtest du lieber sowas wie uniqid() verwenden?
Ergibt hier glaub ich ein ähnliches Ergebnis wie meine random\_text-Methode...
MfG
Naps
Moin!
Vielleicht möchtest du lieber sowas wie uniqid() verwenden?
Ergibt hier glaub ich ein ähnliches Ergebnis wie meine random_text-Methode...
Dürfte nur schneller sein. Hattest Du nicht nach Verbesserungen gefragt? Es ist eine.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Dürfte nur schneller sein. Hattest Du nicht nach Verbesserungen gefragt? Es ist eine.
An das hab ich gar nicht gedacht...
Danke