ホームページ  >  記事  >  バックエンド開発  >  私は長い間 thinkphp の問題に取り組んできましたが、まだわかりません。助けていただけますか?

私は長い間 thinkphp の問題に取り組んできましたが、まだわかりません。助けていただけますか?

WBOY
WBOYオリジナル
2016-06-23 13:35:271108ブラウズ

コントローラー内のコード:
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 関数で問題が発生しました。でも、それはソースコードに問題があるのではないでしょうか?ソースコードにエラーがあることも珍しくありません。また、記述形式が間違っている可能性もあります。


どうすればよいでしょうか? 私が書いたのは最も単純な数行のコードです

結果はソース コードでテストされ、parseXmlAttr 関数に問題があることが判明しました。でも、それはソースコードに問題があるのではないでしょうか?ソースコードにエラーがあることも珍しくありません。また、記述形式が間違っている可能性もあります。


コントローラーのテンプレートに渡される配列は $select=array('id'=>1,'name'=>'yan'); です
foreach タグを処理した後、関数 parseXmlAttr( $attr,$tagのこの文) $xml = (array)($xml->tag->attributes()); 取得した$xmlはarray(0){}

処理後は次のようになります。配列が空の場合、この関数はデータを返しません。

以上です。投稿したものと比較してください。ソースコードはこんな感じですが、良いでしょうか? ? ? ? ? ? ? ? ?



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;        }    }

foreach タグを解析するためのソースコードを確認しました。これは、実際には、タグ内の name と item の値が取得されていないためです。もちろん、ソース コードをチェックして特定の理由を除外することもできます。最も簡単な解決策は、代わりに volist タグを使用することです。

volist、foreach、for は同じ効果があります。
問題は、配列がソース コードに渡された後、空として処理されることです。

上記のように、リスト配列の値は変更されていません。単に、thinkphp をダウンロードして元の投稿者のコードで試してみたところ、php コードが正しく生成されませんでした。公式ウェブサイトで thinkphp の最新バージョンをチェックすることをお勧めします

前述したように、リスト配列の値は変更されていません。テンプレートの処理時に PHP コードが正しく生成されなかっただけです。 thinkphp をダウンロードして、元のポスターを使用しました。コードを試してみましたが、結果は正常でした。thinkphp 公式 Web サイトにアクセスして、最新バージョンを再度ダウンロードすることをお勧めします



公式 Web サイトから 3.1.3 をダウンロードしました。 EclipsePHP Studio v1.2.2 を使用しているプログラミング プラットフォームに問題がありますか?
開発環境は統合 appserv を使用します。

私は午後中ずっとその作業をしていましたが、インターネット上の一部の人々は、parseXmlAttr に
$xml = (array)($xml->tag->attributes()); というバグがあると言いました。 ($attr,$tag);
$array をトラバースするために foreach を使用してみましたが、TagLibCx で文字列リンクを実行すると、文字列リンクが接続できません。以前使用していたappservを新しいものにしました。問題は解決された。でも、以前使っていたものは問題ありませんでした。 thinkphp タグに問題があるのはなぜですか? ? ? ? ? ? ?


php環境はphp3.0以上が望ましいです

実行環境に問題があるため、以前使用していたappservを新しいものに置き換えました。問題は解決された。でも、以前使っていたものは問題ありませんでした。

thinkphp タグに問題があるのはなぜですか? ? ? ? ? ? ?


あなたの問題は解決しましたか?環境を変える必要があるのでしょうか? , 私のThinkPHPも3.1.3でphpのバージョンはphp6です。これも交換する必要があるのでしょうか?


解決しました。PHP6 は動作しませんでした。PHP5 に変更したところ、動作しました
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。