---
title: "Random rad i en fil?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/185150-random-rad-i-en-fil"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "WilleB"
published: "2010-11-05T14:14:45.000Z"
updated: "2010-11-05T22:13:04.000Z"
replies: 7
views: 701
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/185150-random-rad-i-en-fil"
---

# Random rad i en fil?

## #1 — WilleB, 2010-11-05T14:14Z

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 :)

Permalänk: https://www.webforum.nu/p/185150

## #2 — fiddler, 2010-11-05T14:24Z

Otestad, men borde fungera

```php
$textfil=file('filen.txt');//Läser in filen i en array
shuffle($textfil);//Blandar om
$dinvariabel=$textfil['0'];//Lägger element 0 i $dinvariabel
```

Permalänk: https://www.webforum.nu/p/2258749

## #3 — SPiN, 2010-11-05T14:26Z

Det lättaste sättet är att använda [file()](http://php.net/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](http://php.net/sizeof) för att få ett slumpmässigt index, och returnerar sedan raden.

```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];
}
```

Det finns ingen anledning till att blanda in FTP, ange istället hela sökvägen till filen när du anropar funktionen:

```php
/* 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');
```

Permalänk: https://www.webforum.nu/p/2258750

## #4 — WilleB, 2010-11-05T17:43Z

Behöver mera hjälp, inget fungerar!

Permalänk: https://www.webforum.nu/p/2258757

## #5 — nitro2k01, 2010-11-05T18:19Z

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?

Permalänk: https://www.webforum.nu/p/2258758

## #6 — WilleB, 2010-11-05T21:41Z

Av nån anledning postade min dator två posts - den under är den som gäller

Permalänk: https://www.webforum.nu/p/2258772

## #7 — WilleB, 2010-11-05T21:43Z

Min kod:

```php
<?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)

Permalänk: https://www.webforum.nu/p/2258774

## #8 — nitro2k01, 2010-11-05T22:13Z

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');**

Permalänk: https://www.webforum.nu/p/2258778

---

Tråden på webben: https://www.webforum.nu/amne/php/185150-random-rad-i-en-fil
