0

結果をループ内に表示しようとしていますが、何らかの理由で、my = a = を作成し、最後に .$_str を追加すると、ループの外に表示され続けます。ただし、.= for my = を使用し、文字列の末尾から .$_str を削除すると、ループ内に表示されますが、foreach ループからの出力が逆になりません。これは、達成しようとしている平均的な目標です。

問題が発生している領域についてコメントしました。テストする行のいずれかを自由にコメントアウトして、コードをテストする準備ができていることを確認してください。

        <script type='text/javascript' src='http://www.google.com/jsapi'></script>
        <?php
        $file = file_get_contents("http://ichart.finance.yahoo.com/table.csv?s=GOOG&a=03&b=18&c=2004&d=04&e=17&f=2012&g=d&ignore=.csv");

            $stockcontent = str_replace('Date,Open,High,Low,Close,Volume,Adj Close', '',  $file);
            $stockcontent = trim($stockcontent);

            $stockcontentex = str_getcsv($stockcontent, "\n");

            $i = 0;
            $j = 0;

            $_str = '';  
            $_str .= "<script type='text/javascript'>
              google.load('visualization', '1', {'packages':['annotatedtimeline']});
              google.setOnLoadCallback(drawChart);
              function drawChart() {
                var data = new google.visualization.DataTable();
                data.addColumn('date', 'Date');
                data.addColumn('number', 'High');
                data.addColumn('number', 'Low');
                data.addRows([";
            foreach($stockcontentex as $stockexplode){
                $stockex = explode(',',$stockcontentex[$i++]);
                $stockexdate = explode('-', $stockex[0]);
                $stockYear = $stockexdate[0];
                $stockMonth = $stockexdate[1];
                $stockDay = $stockexdate[2];
                $stockHigh = $stockex[2];
                $stockLow = $stockex[3];

    //right here is where I am having the problem.
$_str = '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n".$_str;


    //$_str .= '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n";

                }

              $_str .= "]);

                var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
                chart.draw(data, {displayAnnotations: false});
              }
            </script>
            <div id='chart_div' style='width: 700px; height: 240px;'></div>";

                echo $_str;
        ?>

これについて私を助けることができる人に感謝します。

4

1 に答える 1

1
    <script type='text/javascript' src='http://www.google.com/jsapi'></script>
    <?php
    $file = file_get_contents("http://ichart.finance.yahoo.com/table.csv?s=GOOG&a=03&b=18&c=2004&d=04&e=17&f=2012&g=d&ignore=.csv");

        $stockcontent = str_replace('Date,Open,High,Low,Close,Volume,Adj Close', '',  $file);
        $stockcontent = trim($stockcontent);

        $stockcontentex = str_getcsv($stockcontent, "\n");

        $i = 0;
        $j = 0;

        $_str = '';  
        $_str .= "<script type='text/javascript'>
          google.load('visualization', '1', {'packages':['annotatedtimeline']});
          google.setOnLoadCallback(drawChart);
          function drawChart() {
            var data = new google.visualization.DataTable();
            data.addColumn('date', 'Date');
            data.addColumn('number', 'High');
            data.addColumn('number', 'Low');
            data.addRows([";

        $tstr = "";
        foreach($stockcontentex as $stockexplode){
            $stockex = explode(',',$stockexplode); // no need to do this $stockcontentex[$i++]); here
            $stockexdate = explode('-', $stockex[0]);
            $stockYear = $stockexdate[0];
            $stockMonth = $stockexdate[1];
            $stockDay = $stockexdate[2];
            $stockHigh = $stockex[2];
            $stockLow = $stockex[3];

            //right here is where I am having the problem.
            $tstr = '[new Date('.$stockYear.', '.$stockMonth.', '.$stockDay.'), '.$stockHigh.', '.$stockLow.'],'. "\n".$tstr;


            }
         $_str = $_str.$tstr; // $x .= $xx; is just a shotcut for $x = $x.$xx;
         $_str .= "]); 

         var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
            chart.draw(data, {displayAnnotations: false});
          }
        </script>
        <div id='chart_div' style='width: 700px; height: 240px;'></div>";

        echo $_str;
    ?>
于 2012-05-18T00:33:51.823 に答える