2012-02-01 9 views
0

PHPのテキストを制限する方法はありますか?その後に展開/折りたたみオプションを追加する方法はありますか?例えば展開と折りたたみオプションのあるPHPテキストの制限

私は500文字の長さのノートを持っている、と私はテキストの上限($ notetlimit = 100;)に設定した場合(その後、私は画像を挿入したいと思い、私は100個の文字を取得します矢印など)をクリックすると、残りのテキストがクリックされ、別のイメージに変更されます(例:矢印)。ページブレークのようなもの。

可能でしょうか、または展開と折りたたみにjsを使用する必要がありますか?

答えて

2

あなたがテキストを制限するために、この機能を使用することができます...

$文字列を使用すると、拡大して今すぐ$分= 1000

の長さに制限されるテキストです

function gen_string($string,$min=1000,$clean=true) { 
     $text = trim(strip_tags($string)); 
     if(strlen($text)>$min) { 
      $blank = strpos($text,' '); 
      if($blank) { 
       # limit plus last word 
       $extra = strpos(substr($text,$min),' '); 
       $max = $min+$extra; 
       $r = substr($text,0,$max); 

      } else { 
       # if there are no spaces 
       $r = substr($text,0,$min).'.........'; 
      } 

     } else { 
      # if original length is lower than limit 
      $r = $text; 
     } 
     return $r ; 


    } 

かgoogle plusと同じテキストを折りたたんで、truncate.jsファイルを使用できます。

+0

はい、これは私が必要としていたものです。 – Kosta021

+0

[OK]をクリックし、正しい答えとして選択します。:) –

2

プレーンなJS(例えばjQuery Expander)でプレーンなPHP(テキストの拡張にはページのリロードが必要、SEOには向いていません)で行うことができます。あるいは、PHPのHTMLマークアップを作成し、 JSは、展開されたバージョンと折り畳まれたバージョンを切り替えます。

HTMLマークアップを変更しないでプレーンJSでそれを行うことは、ほとんどの人々(Unobtrusive JavaScript)によって最も最新の方法と考えられますが、すべての解決策の引数があります。

+0

ありがとう、私はExpanderで試してみます。 – Kosta021

0

はい可能です。あなたが持っているテキストが$notelimitより長い場合は、

<a href='...?offset=100'><img src='...arrow.png'/></a> 

のようにリンクを生成することができます。そして、リンクがクリックされた場合は、$_GET["offset"]をチェックし、それから、ノートを表示

substr($notetext, $offset); 

オフセット詳細はhttp://php.net/manual/en/function.substr.phpを参照してください!

0

関数MYTRACE($文字列、$ initialVal、$ strPad)

{ 
    $lengh = strlen($string); 

    if($lengh>$initialVal){ 

     $tracedString = substr($string,0, $initialVal).$strPad; 

    }else{ 

     $tracedString = $string; 

    } 

    return ucfirst($tracedString); 
} 

$テキスト= "HelloWorldの";

$ result = myTrace($ text、5、 '...');

エコー$結果; //出力は、ハローです...

0

あなたは今すぐ機能RenderCollapsedNoteとRenderFullNoteがあなたのノート用のコンテナを生成

$note = "some note goes here"; 
$noteLimit = 100; 
if(strlen($note) > $noteLimit) 
{ 
    RenderCollapsedNote($note); 
} 
else 
{ 
    RenderFullNote($note); 
} 

ような何かをするだろう。これをリアルタイムでテキスト入力で行うには、javascript/ajaxを使ってメモをポストバックして投稿し、レスポンスに従ってページを更新する必要があります。しかし、私はこれがはるかに効率的になるので、javascriptのみのアプローチを強くお勧めします。

関連する問題