我正在尝试运行Heroku的基本教程facebook应用程序(http://devcenter.heroku.com/articles/facebook)。 按照说明,在Heroku上部署很顺利。 尝试在本地部署我收到以下错误
解析错误:语法错误,第36行的C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ AppInfo.php中的意外':'。
我知道getHome函数存在一些问题,在这里找到了python类似问题的答案 - Problem running Heroku's Facebook app tutorial with Python,但我仍然无法弄清楚应该如何为PHP做。
我尝试将getHome函数更改为return http://127.0.0.1:5000/
(就像我在facebook应用上设置的网站网址一样),但后来我发现浏览器无法连接到它。
我在本地运行Safari 2.2,基本的Hello world PHP文件运行正常。
提前致谢。
答案 0 :(得分:0)
看看你的评论,你做错了。它应该是
return ($_SERVER['HTTP_X_FORWARDED_PROTO']) ?: "http:" . "://" . $_SERVER['HTTP_HOST'] . "/";
答案 1 :(得分:0)
该应用程序依赖于PHP 5.3运算符在该行上执行“或等于”。它的工作原理如下:
$foo ?: "bar";
这意味着:如果设置则假定$ foo的值,否则为“bar”。为了与早期版本的PHP兼容,您必须使用不同的运算符和函数重写它。像:
isset($foo) ? $foo : "bar";
回到应用程序,你可以用以下方法修复它:
$protocol = isset($_SERVER['HTTP_X_FORWARDED_PROTO']) ? $_SERVER['HTTP_X_FORWARDED_PROTO'] : "http";
return $protocol . "://" . $_SERVER['HTTP_HOST'] . "/";
This post提供有关PHP或等号和替代品的更多信息。