C語言函式
相關函式:open, ftruncate
表頭檔案:#include <unistd.h>
定義函式:int truncate(const char *path, off_t length);
函式說明:truncate()會將參數path指定的檔案大小改為參數length指定的大小。 如果原來的檔案大小比參數length大,則超過的部分會被刪除
返回值:執行成功則返回0, 失敗返回-1, 錯誤原因存於errno
錯誤代碼:EACCESS 參數path所指定的檔案無法存取
EROFS 欲寫入的檔案存在於唯讀檔案系統內
EFAULT 參數path指針超出可存取空間
EINVAL 參數path包含不合法字元
ENAMETOOLONG 參數path太長
ENOTDIR 參數path路徑並非一目錄
EISDIR 參數path指向一目錄
ETXTBUSY 參數path所指的檔案為共享程式,而且正被執行中
ELOOP 參數path有過多符號連線問題
EIO I/O存取錯誤
資料庫操作
使用方法:
truncate table table_name;
操作特性:
truncate 只刪除表中的所有數據,不刪除表的結構;
truncate 使ddl操作立即生效,原數據不放到rollback segment中,不能回滾,操作不觸發trigger;
truncate 語句預設情況下將空間釋放到 minextents個 extent,除非使用reuse storage;
truncate 會將高水線復位(回到最開始)。
截取字元串
smarty truncate 截取
從字元串開始處截取某長度的字元.默認是80個。
你也可以指定第二個參數作為追加在截取字元串後面的文本字串.該追加字串被計算在截取長度中。
默認情況下,smarty會截取到一個詞的末尾。
如果你想要精確的截取多少個字元,把第三個參數改為"true" 。
例 截取:
index.php:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
$smarty->display('index.tpl');
index.tpl:
{$articleTitle}
{$articleTitle|truncate}
{$articleTitle|truncate:30}
{$articleTitle|truncate:30:""}
{$articleTitle|truncate:30:"---"}
{$articleTitle|truncate:30:"":true}
{$articleTitle|truncate:30:"...":true}
輸出結果:
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after Eighteen Years at Checkout Counter.
Two Sisters Reunite after...
Two Sisters Reunite after
Two Sisters Reunite after---
Two Sisters Reunite after Eigh
Two Sisters Reunite after E...