2017-02-09 6 views
0

私が持っている配列リスト:長すぎる文字列値をどのように切り捨てることができますか?

$myarray = array(
    array(
     'name' => 'File name 1 - type.zip', 
     'size' => '600KB', 
    ), 
    array(
     'name' => 'File name 2 - type.pdf', 
     'size' => '1.5MB', 
    ), 
    array(
     'name' => 'File name 3 - type.jpeg', 
     'size' => '50.5KB', 
    ), 
); 

。 。 。ファイル名を切り捨てる必要がありますが、ファイルの拡張子とサイズは保持してください。

たとえば、'File name 1 - type.zip''File name 1 - ... .zip (600KB)'と表示されます。

ヒント?

+0

文字列の部分文字列を入力して、最後の25文字を入力するか、好きなだけ多く入力します。 – Dimi

+1

ようこそスタックオーバーフロー!あなたの質問とタイトルを更新して、あなたがやろうとしていることと一致させるようにしました。あなたと他の人を助ける答えを得る可能性が高まります。私があなたの問題を間違って伝えたと思うなら、もっと明確にしてください。がんばろう! – talemyn

答えて

0

あなたは拡張子から名前を区切るためにpathinfoを使用することができます。次に、省略記号を短縮して追加するさまざまな方法があります。 this answerのメソッドは非常に簡単です。このメソッドを配列にマップすると、すべての項目を整形できます。

0

あなたのlen_you_neenあなたは試して以下のようなものを与えることができます6文字

$tmpArray = explode('.',$myArray['name']); 
$myStr = substr($tmpArray[0], 0, 6); 

$resultStr = $myStr . '.'.$tmpArray[1]; 
0

であると仮定すると爆発し、SUBSTR 使用することができます。ファイルサイズは含まれていませんが、そこから取得できると確信しています。

$fileName = "File name 1 - type.zip"; 
echo shortenFileNameWhileMaintainingExtension($fileName); 

function shortenFileNameWhileMaintainingExtension($fileName, $shortenToLength = 20) { 
    $extension = substr(strrchr($fileName, '.'), 1); 
    if((strlen($fileName) - strlen($extension)) < $shortenToLength) { 
     return $fileName; 
    } 
    $newFileName = trim(substr($fileName, 0, $shortenToLength)) . "...." . $extension; 
    return $newFileName; 
} 
関連する問題