Firebug控制台抛出错误.它声明我在尝试用于跟踪社交事件的代码是在//platform.twitter.com/widgets.js异步加载完成之前使用的.
ReferenceError:twttr未定义twttr.ready(function(twttr){
但是,我遵循了Twitter文档(https://dev.twitter.com/web/javascript/events),并将其包装在twttr.ready()中,就像使用Facebook事件一样.
<script type="text/javascript"> //load social sharing buttons async
(function(w, d, s) {
function go(){
var js, fjs = d.getElementsByTagName(s)[0], load = function(url, id) {
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.src = url; js.id = id;
fjs.parentNode.insertBefore(js, fjs);
};
load('//connect.facebook.net/en_US/all.js#appId=1111111111111111&xfbml=1', 'fbjssdk');
load('https://apis.google.com/js/plusone.js', 'gplus1js');
load('//platform.twitter.com/widgets.js', 'tweetjs');
}
if (w.addEventListener) { w.addEventListener("load", go, false); }
else if (w.attachEvent) { w.attachEvent("onload",go); }
}(window, document, 'script'));
</script>
<script type="text/javascript">
window.fbAsyncInit = function() {
FB.Event.subscribe('edge.create', function(targetUrl) {
ga('send', 'social', 'facebook', 'like', …Run Code Online (Sandbox Code Playgroud) 我正在使用API来检索JSON格式的某些温度和位置值.我在纯文本缓存文件中写输出.
然而,温度站可能无法报告温度值,在这种情况下,我的输出将是空行(\n).我想通过显示非报告站的"N/A"来处理这种情况.
这是一个典型的缓存文件,第一个站报告温度和位置,第二个站关闭(报告两个空行):
27.6
Napoli-Posillipo
(an empty line)
(an empty line)
Run Code Online (Sandbox Code Playgroud)
我尝试过:
$display = file($cachename);
$temperature[0] = $display[0];
$location[0] = $display[1];
$temperature[1] = $display[2];
$location[1] = $display[3];
$temp_avg = (($temperature[0]+$temperature[1])/2); //average temperature
if($temperature[0] = "\n"){ //if weather station is not reporting data
$temperature[0] = "N/A";
$temp_avg = "N/A";
}
if($temperature[1] = "\n"){
$temperature[1] = "N/A";
$temp_avg = "N/A";
}
echo "<div id='temperature'><b>".$temperature[0]."</b>°C (".$location[0].") | ";
echo "<b>".$temperature[1]."</b>°C (".$location[1].") | ";
echo "<b>".$temp_avg."</b>°C (avg) | ".$minutes."m".$secondsleft."s ago</div>";
Run Code Online (Sandbox Code Playgroud)
但是,即使第一个工作站正确报告其温度值,我仍然会为两个工作站获得"N/A".
N/A°C(Napoli-Posillipo)| N/A°C()| N/A°C(平均)| …
我写了(感谢Stackoverflow帮助)一个PHP脚本(称为wunder_temp.php),它显示给定数量的Weatherunderground.com站的温度和位置.
我将这个脚本包含在我的页脚中,它在单个页面上运行良好.如果我打开http://www.flapane.com/guestbook/guestbook.php,我的页脚将不显示温度,error.log说:[09-Sep-2012 09:46:45 UTC] PHP致命错误:第47行/home/xxx/public_html/wunder_temp.php中的字符串不支持[]运算符
$display = file($cachename, FILE_IGNORE_NEW_LINES); //ignore \n for non-reporting stations
foreach ($display as $key=>$value){
if($key % 2 == 0){
$temperature[] = $value; // EVEN (righe del file cache pari)
}else{
$location[] = $value; // ODD - **HERE IS LINE 47**
}
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,guestbook.php是我网站的唯一页面,其中wunder_temp.php不起作用.
上面的代码所做的是读取缓存文件并在$ temperature []数组中输入偶数行,在$ location []数组中输入奇数行.这是我的缓存文件中的一个示例:
26.8
Stadio San Paolo di Napoli, Napoli
24.4
Pozzuoli
Run Code Online (Sandbox Code Playgroud)
老实说,我不知道为什么我在留言簿页面上看到了这些错误.
事实证明,"罪魁祸首"是函数loadmore.php,它使用twitter风格的ajax函数加载留言簿评论(并包含在guestbook.php中).如果我不包含它,wunder_temp.php运行良好,并且不会产生任何错误.
loadmore.php:
<div id='contcomment'>
<div class="timeline" id="updates">
<?php
$sql=mysql_query("select * from gbook_comments ORDER BY id DESC …Run Code Online (Sandbox Code Playgroud) $ bar包含4个(在此示例中,但可能多于4个)我希望以这种方式复制到$ foo和$ blah中的值:
$foo[0] = $bar[0];
$foo[1] = $bar[2];
$blah[0] = $bar[1];
$blah[1] = $bar[3];
Run Code Online (Sandbox Code Playgroud)
因此,$ bar的偶数行将被复制到$ foo [i]中,奇数行将被复制到$ blah [i]中.
我尝试过:
for($i=0; $i<2; $i++)
{
for($j=0; $j<4; $j++)
{
if($j % 2 == 0)
{
$foo[$i] = $bar[$j]; // EVEN
}
else
{
$blah[$i] = $bar[$j]; // ODD
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我显示$ foo和$ blah的输出,$ foo [0]等于$ foo [1],$ blah [0]等于$ blah [1],而它们应该包含不同的值.
示例:来源:
$bar[0]: 27.8
$bar[1]: Napoli-Posillipo
$bar[2]: 29
$bar[3]: Stadio San Paolo di Napoli, Napoli
Run Code Online (Sandbox Code Playgroud)
(错误的)循环结果:
$foo[0] …Run Code Online (Sandbox Code Playgroud)