WilleBMedlem sedan okt. 200934 inlägg Hej!
Jag har en txt-fil på servern med en massa (massa) rader.
Jag vill göra ett php-script som öppnar filen, tar ut en random rad och lägger i en variabel.
Tänker på om jag ska anväbda ftp med fopen() på något sätt...
Är 14 år och har inte hållt på med php så länge, ha gärna mycket kommentarer i koden så det blir lättare för mig att förstå vad som händer :)
fiddlerMedlem sedan juli 20023 617 inlägg Otestad, men borde fungera
$textfil=file('filen.txt');//Läser in filen i en array
shuffle($textfil);//Blandar om
$dinvariabel=$textfil['0'];//Lägger element 0 i $dinvariabel
SPiNMedlem sedan mars 20007 896 inlägg Det lättaste sättet är att använda file(), som läser in en fil till en array. Varje post i arrayen motsvarar en rad i filen. Sen slumpar man ett värde mellan 0 och sizeof($array) - 1 för att få ett slumpmässigt index, och returnerar sedan raden.
function getRandomLineFromFile($filename) {
/* Läs in filen till en array */
$array = file($filename);
/* Slumpa ett index från 0 till arrayens högsta index */
$index = rand(0, sizeof($array) - 1);
/* Returnera raden */
return $array[$index];
}
Det finns ingen anledning till att blanda in FTP, ange istället hela sökvägen till filen när du anropar funktionen:
/* Så här enkelt är det nu att få en slumpmässig rad från filen '../my/files/file.txt': */
$line = getRandomLineFromFile('../my/files/file.txt');
WilleBMedlem sedan okt. 200934 inlägg Behöver mera hjälp, inget fungerar!
Wille, kan du visa hur den kod du har prövat ser ut? Var ligger text-filen i relation till php-filen? Bara för att kolla att du har de absoluta grundkunskaperna: Du vet att filer som innehåller PHP-kod måste ha filändelsen php och att koden måste inneslutas mellan <?PHP och ?> va?
WilleBMedlem sedan okt. 200934 inlägg Av nån anledning postade min dator två posts - den under är den som gäller
WilleBMedlem sedan okt. 200934 inlägg Min kod:
<?php
function getRandomLineFromFile($filename) {
/* Läs in filen till en array */
$array = file($filename);
/* Slumpa ett index från 0 till arrayens högsta index */
$index = rand(0, sizeof($array) - 1);
/* Returnera raden */
return $array[$index];
}
/* Så här enkelt är det nu att få en slumpmässig rad från filen '../my/files/file.txt': */
$line = getRandomLineFromFile('http://.../fil.txt');
echo "Random ord: $line";
?>
Jag har en riktig sökväg i den riktiga filen, inte http://.../fil.txt
fil.txt ligger i samma mapp som phpfilen
@nitro2k01 Jag kan grunderna i php och previewar fien i localhost (xampp)
Jaha... Vad du bör göra är att lägga filen i samma katalog på web-servern, som php-filen ligger i, och bara skriva getRandomLineFromFile('fil.txt');