コントローラー内のコード:
public function testt(){
//$title="演習書"
//$content='0c6dc11e160d3b678d68754cc175188a'.$_GET['name'];
//$ this ->assign('title',$title);
$User = M('name');
$this->assign('list', $ list);
$this->assign("title","SMARTY テスト");
$this->display();
テンプレート内のコード:
{$title}0f3dffa9b2ad0bdd41109161324f5460
039ebd9ad89b4d750a28520993c09ce4
70b0f4e7c41f2707b12056d6eb778fbc foreach 部分を削除することが重要です。これは正常です。そうでない場合は、次のように表示されます。
構文エラー、予期しない ')'、T_VARIABLE または '$' を期待しています D:AppServwwwAppadminRuntimeCache6e178638460c8ba2282739c247c2ce14.php の 10 行目。
キャッシュ ファイル内のコードは次のとおりです。 :
62317baab803453b64cc1946e27e5861df250b2156c434f3390392d09b1c9563
69aa596bcf3521286dbc6623251819df $): echo ($vo["name"]); ?231a563c997aa9e3e0ae614bd16728b0?php endforeach;
c201e05bf29da9f1e71a7cee65dadee3parseXmlAttr($attr,'foreach') が実行された後、$tag には値がありません。 ? ? ? ? ? ? ? ? ? ? ? ? ?
どうすればよいでしょうか? 私が書いたのは最も単純な数行のコードです
ソース コードでテストした結果、parseXmlAttr 関数に問題があることが分かりました。しかし、それはソース コードに問題がある可能性がありますか?
どうすればよいでしょうか? 私が書いたのは最も単純な数行のコードです
結果はソース コードでテストされ、parseXmlAttr 関数に問題があることが判明しました。でも、それはソースコードに問題があるのではないでしょうか?ソースコードにエラーがあることも珍しくありません。また、記述形式が間違っている可能性もあります。
処理後は次のようになります。配列が空の場合、この関数はデータを返しません。
以上です。投稿したものと比較してください。ソースコードはこんな感じですが、良いでしょうか? ? ? ? ? ? ? ? ?
public function parseXmlAttr($attr,$tag) { //XML解析安全过滤 $attr = str_replace('&','___', $attr); $xml = '<tpl><tag '.$attr.' /></tpl>'; $xml = simplexml_load_string($xml); if(!$xml) { throw_exception(L('_XML_TAG_ERROR_').' : '.$attr); } $xml = (array)($xml->tag->attributes()); $array = array_change_key_case($xml['@attributes']); if($array) { $attrs = explode(',',$this->tags[strtolower($tag)]['attr']); if(isset($this->tags[strtolower($tag)]['must'])){ $must = explode(',',$this->tags[strtolower($tag)]['must']); }else{ $must = array(); } foreach($attrs as $name) { if( isset($array[$name])) { $array[$name] = str_replace('___','&',$array[$name]); }elseif(false !== array_search($name,$must)){ throw_exception(L('_PARAM_ERROR_').':'.$name); } } return $array; } }
上記のように、リスト配列の値は変更されていません。単に、thinkphp をダウンロードして元の投稿者のコードで試してみたところ、php コードが正しく生成されませんでした。公式ウェブサイトで thinkphp の最新バージョンをチェックすることをお勧めします
前述したように、リスト配列の値は変更されていません。テンプレートの処理時に PHP コードが正しく生成されなかっただけです。 thinkphp をダウンロードして、元のポスターを使用しました。コードを試してみましたが、結果は正常でした。thinkphp 公式 Web サイトにアクセスして、最新バージョンを再度ダウンロードすることをお勧めします
php環境はphp3.0以上が望ましいです
実行環境に問題があるため、以前使用していたappservを新しいものに置き換えました。問題は解決された。でも、以前使っていたものは問題ありませんでした。
thinkphp タグに問題があるのはなぜですか? ? ? ? ? ? ?
あなたの問題は解決しましたか?環境を変える必要があるのでしょうか? , 私のThinkPHPも3.1.3でphpのバージョンはphp6です。これも交換する必要があるのでしょうか?