PHP arclist タグ、文字をインターセプトして最後にドットを追加する方法
夢織り初心者
そのタグ
dede:arclist titlelen=42 row=12}
[field:title/]{/dede:arclist}
長さの作り方42 を超える 自動的に追加します... ドット ドット ドット
-----解決策--------- データベースからタイトルを取得するときに、
SELECT id,left(title,42) をテーブルのタイトルとしてインターセプトすることもできます
------解決策---------
をインターセプトすることもできます
------解決策---------//中国語と英語のインターセプト
関数を実装するCut_str($sourcestr, $cutlength = 10, $etc = '...')
{
$returnstr = '';
$i = 0;
$n = 0.0;
$str_length = strlen($sourcestr); //文字列のバイト数
while ( ($n{
$temp_str = substr ( $sourcestr, $i, 1);
$ascnum = ord($temp_str); //文字列内の $i 番目の文字の ASCII コードを取得します
if ( $ascnum >= 252) / / ASCII ビットの上位が 252 に等しい場合
{
$returnstr = $returnstr . substr($sourcestr, $i, 6); //UTF-8 エンコーディング仕様に従って、連続する 6 文字がカウントされます。単一の文字として
$i = $i + 6; //実際のバイトは 6 としてカウントされます
$n++; // 文字列の長さは 1 としてカウントされます
}
elseif ( $ascnum >= 248 ) // ASCII の場合、ビット高は 248
{
$returnstr = $returnstr . substr($sourcestr, $i, 5); // UTF-8 エンコーディングによる仕様では、連続する 5 文字を 1 文字としてカウントします
$i = $i + 5; //実際のバイトは 5
$n++ としてカウントされます //文字列の長さは 1
}
elseif ( $ascnum >= 240 ) //ASCII ビットが 240 の場合
{
$returnstr = $returnstr . substr($sourcestr, $i, 4); UTF-8 エンコード仕様、連続する 4 文字を 1 文字としてカウントします
$i = $i + 4; //実際のバイトは 4 としてカウントされます
$n++; //文字列の長さは 1 としてカウントされます。
}
elseif ( $ascnum >= 224 ) //ASCII ビットが High で 224 の場合
{
$returnstr = $returnstr . substr($sourcestr, $i, 3); //UTF-8 エンコード仕様に従って、連続する 3 文字は 1 文字としてカウントされます
$i = $ i + 3; //実際のバイトは 3 としてカウントされます
$n++;は 1
}
elseif ( $ascnum >= 192 ) //ASCII ビットが High で 192
{
$returnstr = $returnstr($sourcestr, $i . , 2); //UTF-8 エンコード仕様に従って、連続する 2 文字は 1 文字としてカウントされます
$i = $i + 2; //実際のバイトは 2
$n++; /文字列の長さは 1
}
elseif ( $ascnum>=65 および $ascnum<=90 および $ascnum!=73) としてカウントされます / /大文字 I
{
$ を除くreturnstr = $returnstr . substr($sourcestr, $i, 1);
$i = $i + 1; //実際のバイト数は 1
$n++ としてカウントされます。外観上、大文字は 1 つの上位ビット文字としてカウントされます
}
elseif (!(array_search($ascnum, array(37, 38, 64, 109,119) ) === FALSE) ) //%,& ,@,m,w 文字は 1 文字幅です
{
$returnstr = $returnstr . substr($sourcestr, $i, 1);
$i = $i + 1;バイト数は引き続き 1
$n++ としてカウントされます。 //ただし、全体の外観を考慮して、これらのメモは 1 つの上位文字としてカウントされます
}
else //その他の大文字と小文字、半角文字も含みます。句読点
{
$returnstr = $returnstr .substr($sourcestr, $i, 1);
$i = $i + 1; //実際のバイト数 1
$n = $n; + 0.5; //残りの小文字と半角句読点は上位文字の半分の幅...
}
}
if ( $i < ; $str_length )
{
$returnstr = $returnstr . $etc; //長さを超える場合は末尾に省略記号を追加します
}
return $returnstr;
}
または
select * from tablename substring(title,1,10) as t
------解決策------------------
実際、ホームページにはコードの一部がありますが、率直に言えば、
を自分で追加するだけです。
PHP コード を追加するプログラムがなぜ必要なのでしょうか。
{dede:arclist flag='h' limit='0,1'}
[field:description function='cn_substr(@me,110)'/]...[全文を表示] ; /p>
{/dede:arclist}