Pourquoi la chose qui sort de mon écho est-elle un %s ? Au lieu de la chaîne que j'ai assignée ?
Code complet :
IndexAction.class.php
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
$this->responseMsg();
}
public function responseMsg(){
$postStr="<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[tel]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>";
$postObj = simplexml_load_string($postStr);
$fromUsername = $postObj->FromUserName;
//echo $fromUsername;
//echo '111';
$toUsername = $postObj->ToUserName;
$time = time();
$msgType = $postObj->MsgType;
$content = $postObj->Content;
if($content=='tel'){
$indexModel=new IndexModel();
$indexModel->responseText($postObj,$content);
}
}
}
IndexModel.class.php
<?php
class IndexModel extends Model{
//回复纯文本
public function responseText($postObj,$content) {
$time=time();
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MSsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
echo "textTpl is: ".$textTpl;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $content);
// echo $resultStr;
}
}
?>
Allez dans le navigateur F12 pour voir le code XML redondant.
Les navigateurs peuvent également analyser XML, vous pouvez le voir en consultant le code source de la page
Vous êtes le tpl d'echo, il n'y a rien de mal à sortir %s