Обрезать строку после четвертого разрыва строки - PullRequest
5 голосов
/ 14 декабря 2011

У меня проблема в том, что я хочу обрезать длинную строку после четвертого переноса строки и продолжить с "..."

<?php
$teststring = "asddsadsadsadsaa\n
               asddsadsadsadsaa\n
               asddsadsadsadsaa\n
               asddsadsadsadsaa\n
               asddsadsadsadsaa\n
               asddsadsadsadsaa\n";
?>

должно стать:

<?php
$teststring = "asddsadsadsadsaa\n
               asddsadsadsadsaa\n
               asddsadsadsadsaa\n
               asddsadsadsadsaa...";
?>

Я знаю, как разбить строку после первого \n, но я не знаю, как это сделать после четвертого.

Надеюсь, вы мне поможете.

Ответы [ 3 ]

4 голосов
/ 14 декабря 2011

вы можете взорвать строку и затем взять все необходимые вам части

$newStr = ""; // initialise the string
$arr = explode("\n", $teststring);
if(count($arr) > 4) { // you've got more than 4 line breaks
   $arr = array_splice($arr, 0, 4); // reduce the lines to four
   foreach($arr as $line) { $newStr .= $line; } // store them all in a string
   $newStr .= "...";
} else {
   $newStr = $teststring; // there was less or equal to four rows so to us it'all ok
}
1 голос
/ 14 декабря 2011
echo preg_replace ('~((.*?\x0A){4}).*~s', '\\1...', $teststring);
0 голосов
/ 14 декабря 2011

Как то так?

<code>$teststring = "asddsadsadsadsaa
               asddsadsadsadsaa
               asddsadsadsadsaa
               asddsadsadsadsaa
               asddsadsadsadsaa
               asddsadsadsadsaa";

$e = explode("\n", $teststring);

if (count($e) > 4)
{
    $finalstring = "";

    for ($i = 0; $i < 4; $i++)
    {
        $finalstring.= $e[$i];
    }
}
else
{
    $finalstring = $teststring;
}

echo "<pre>$finalstring
";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...