2011-12-14 14 views
4

問題があります。4番目の改行後に長い文字列を切り取り、 "..."を続けたいと思います。4番目の改行後に文字列を切り捨てます。

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

になる必要があります。

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

私が最初\n後の文字列を分割する方法を知っているが、私は、第四の後にどのように行うのか分かりません。

私があなたを助けてくれることを願っています。

+0

4行よりも少ない場合は何が起こるでしょうか? –

+0

4つ以上の線がある場合には、何もカットしないでください。 –

答えて

4

あなたは、文字列を爆発して、あなたが

$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 
} 
+0

あなたはエラーがありますが、それでも生きています –

+0

@ lonut-flavius-pogacian fixed – Emad

0

このような何かを必要とするすべての部分を取ることができますか?

$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</pre>"; 
1
echo preg_replace ('~((.*?\x0A){4}).*~s', '\\1...', $teststring); 
関連する問題