$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
可能很多朋友看了後不知道為什麼要這樣寫,這樣寫的後面的%S是什麼意思,下面我平進入話題
語法
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
參數 描述
format 必需。轉換格式。
args 可選。規定插到 format 字符串中 % 符號處的參數。
說明
參數format 字符串是由零個或多個指令組成: 普通字符 (除了%) 將直接復制到結果, 轉換指示符, 每一種結果取其自己的參數. 這適用於 sprintf()和printf().
參數 format 是轉換的格式,以百分比符號 (“%”) 開始到轉換字符結束。下面的可能的 format 值:
1.一個可選的符號指示符強制一個符號(- or +)用在一個數字上. 默認情況下, 只有 – 符號用在一個數字上如果它是負值 。 這個指示符同樣強制正數附加一個+符號。
2.一個可選的 填充指示符 是說什麼字符將用於填充結果到正確的字符串長度. 這可能是一個空白字符或者一個0(zero character). 默認填充空白. 能指定一個替換填充字符 通過加一個單引號前綴(’)。
3.一個可選的 對齊指示符 是說 結果應該是左對齊或右對齊. 默認是右對齊; 一個 - 字符在這裡將使它左對齊。
4.一個可選的數字, 一個寬度指示符 是說這種轉換應該導致有多少字符(最少)。
5.一個可選的 精度指示符 在形式上是一個句點 (‘.’) 緊隨其後的是一個可選的十進制數字字符串,就是說有多少十進制數字應該被顯示為浮點數。 當用這個指示符在一個字符串 它作為一個中斷點, 設置一個最大字符限制給字符串.
6.一個類型指示符 是說 參數數據應當被當作什麼類型. 可能的類型:
% – 返回百分比符號
b – 二進制數
c – 依照 ASCII 值的字符
d – 帶符號十進制數
e – 科學計數法(比如 1.5e+3)
E – 科學計數法(比如 1.2E+2). (大寫字母)
u – 無符號十進制數
f – 浮點數(local settings aware)
F – 浮點數(not local settings aware)
g – shorter of %e and %f.
G – shorter of %E and %f.
o – 八進制數
s – 字符串
x – 十六進制數(小寫字母)
X – 十六進制數(大寫字母)
arg1, arg2, agr++ 等參數將插入到主字符串中的百分號 (%) 符號處。該函數是逐步執行的。在第一個 % 符號中,插入 arg1,在第二個 % 符號處,插入 arg2,依此類推。