0

これは簡単なことかもしれませんが、私は立ち往生しています。何らかの理由で、これを機能させることができません。str_replace を使用して関数を使用して、機能していないように見える変数を変更/編集します。

index.php

<?php
    include("test.php");
?>
<html><head></head><body>

<? $a = cons(array("one","two","three"),array("four","five","six")); ?>

</body></html>

test.php

$header = '<form class="Poll" method="post" action="%src%"><input type="hidden" name="QID" value="%qid%" /><h4>%question%</h4><table width="100%">';
$md5 = '';
$question = array();
$answers = array();
$tips = array();

function cons($params, $tips) {
        $question = array_shift($params);
        $answers = $params;
        $tooltip = $tips;
        $md5 = md5($question);  
        $header = str_replace('%src%', $_SERVER['SCRIPT_NAME'], $header);
        $header = str_replace('%qid%', $md5, $header);
        $header = str_replace('%question%', $question, $header);

        //isset($_COOKIE[$md5]) ? poll($VOTES) : poll($POLL);  


        /* using this to test */
        if(isset($_COOKIE[$md5])){
            echo "Hello";
        }else{
            echo $header;
            //echo $center;
            //echo $footer;
        }
    echo $md5;
    }

cons() から $md5 をエコーアウトすると動作し、print_r() $answers と $tips を出力すると動作します。str_replace は、私が考えているもので、%src% を置き換える代わりに $header をクリアしています。私は多くの検索を行ってきましたが、私が遭遇したものはすべて、ユーザー/チュートリアルは次のようなものを示しています

echo  str_replace('%question%', $question, $header);

これは私が探しているものではありません。重複したコードや繰り返しコードを使用する代わりに、コードをある程度コンパクトに保ちたいと考えています。何をすべきかよくわからないので、アイデアや提案があれば大歓迎です。

4

3 に答える 3

2

あなたが書いたものはうまくいくように見えますが、実行しようとはしていません。毎回結果を確認し、str_replaceどのような値が表示されるかを確認してください。

または、置換を完全にスキップして、その場で文字列を構築するだけです:

$header = '<form class="Poll" method="post" action="' . $_SERVER['SCRIPT_NAME'] . '"><input type="hidden" name="QID" value="' . $md5 . '" /><h4>' . $question . '</h4><table width="100%">';
于 2013-09-08T19:12:28.790 に答える