0
我试图让我的结果显示在循环内部,但由于某些原因,它始终显示在我的循环外部,当我使我= a =和我添加。 。然而,如果我使用。= 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;
?>
谢谢任何能够帮助我的人。
您是否打算将“$ _str ='[new Date('。$ stockYear。',...”)替换为您标记为问题的行上的“$ _str。= ...”? –
你真的应该阅读[HEREDOC](http://php.net/heredoc)和[json_encode()](http://php.net/json_encode)。直接从PHP生成javascript风险很高 - 一个单个放错位的javascript元字符,你打破了整个javascript代码块。 –
@tom_yes_tom是我要评论,因为它不会扭转结果。 – user874185