Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 循环结果显示在循环外部_Php - Fatal编程技术网

Php 循环结果显示在循环外部

Php 循环结果显示在循环外部,php,Php,我试图让我的结果显示在循环内部,但由于某种原因,当我在最后添加my=a=和$\u str时,它一直显示在循环外部。但是,如果我使用.for my=并从字符串末尾删除.$\u str,它将显示在我的循环中,但不会反转foreach循环的输出,这是我试图实现的平均目标 我已经评论了我遇到问题的地方。请随意注释掉要测试的任何一行,看看我在说什么,代码已经准备好测试了 <script type='text/javascript' src='http://www.google.com

我试图让我的结果显示在循环内部,但由于某种原因,当我在最后添加my=a=和$\u str时,它一直显示在循环外部。但是,如果我使用.for my=并从字符串末尾删除.$\u 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;
        ?>



您是否打算将“$\u str=”[新日期(“.$stockYear.”,…”改为“$\u str=…”相反,在您标记为问题的行上?您真的应该仔细阅读s和。直接从PHP生成javascript是非常危险的-一个错误放置的javascript元字符,您会破坏整个javascript代码块。@tom_yes_tom yes注释掉它,因为它不会逆转结果。
$str.=$new_str
是j请为
$str=$str.$new\u str
设置一个快捷方式,没有什么特别的。
    <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;
    ?>