2016-05-10 2 views

Antwort

9

Verwenden array_slice

$lines = explode(PHP_EOL, $str); 
echo implode(PHP_EOL, array_slice($lines,0,4)) . PHP_EOL; 
+0

viel eleganter als meins. +1 – vaso123

0

Wenn expolode, geben Sie die Werte in ein Array. Iteriere durch ein Array und füge einen Zähler hinzu. Wenn der Zähler 5 ist, geh aus der Iteration aus.

$lines = explode(PHP_EOL, $str); 
$i = 1; 
foreach ($lines as $line) { 
    echo $line ."\n"; 
    $i++; 
    if ($i >= 5) { 
     break; 
    } 
} 
+0

Vielen Dank für Antwort. Gibt es einen Weg ohne for-Schleife, vielleicht mit substr .. –

+0

Was ist das Problem mit der Schleife? Wie auch immer, ja, echo $ lines [0]; echo $ -Zeilen [1]; echo $ -Zeilen [2]; // etc ... ' – vaso123

-2
// split lines with new line 
$lines = explode(PHP_EOL, $str); 

// loop through first five lines 
for($i = 0; $i < 5; $++) 
{ 
    // print line 
    echo $lines[$i]; 
} 
+2

Das ist schlimm, wenn Sie weniger als 5 Zeilen haben, werden Sie Probleme beim Zugriff auf nicht indizierte Array-Elemente haben. – apriede

1

Ich glaube, ich bin zu spät, aber Sie können auch die Ergebnisse der explode-5 begrenzen:

explode(PHP_EOL, $string, -(count(explode(PHP_EOL, $string)) - 5)); 
Verwandte Themen