PHP解析错误求助:FB_com.php第15行出现意外逗号
解决PHP语法错误:第15行意外的逗号问题
嘿,我看到你在运行FB_com.php时碰到了第15行的语法报错,咱们马上搞定它!
错误根源分析
这两个问题直接触发了语法错误:
- 字符串拼接误用符号:你用了逗号
,来拼接字符串,但PHP中字符串拼接必须用点运算符. - 双引号嵌套冲突:外层用双引号包裹字符串时,内层的双引号没有转义,PHP会把它当成字符串结束标记,引发语法混乱
修正后的关键代码片段
把出错的这两行:
if ($options == 'on') {$attr .= "n xmlns:og=","http://ogp.me/ns#";} if ($options == 'on') {$attr .= "n xmlns:fb="http://ogp.me/ns/fb#"";}
替换成下面的代码(两种写法任选其一都可以):
写法1:转义内层双引号
if ($options == 'on') { $attr .= "\n xmlns:og=\"http://ogp.me/ns#\""; } if ($options == 'on') { $attr .= "\n xmlns:fb=\"http://ogp.me/ns/fb#\""; }
写法2:外层用单引号,避免嵌套冲突(更简洁)
if ($options == 'on') { $attr .= '\n xmlns:og="http://ogp.me/ns#"'; } if ($options == 'on') { $attr .= '\n xmlns:fb="http://ogp.me/ns/fb#"'; }
额外优化建议
我注意到你代码里有重复的isset判断(比如两次if (!isset($options)) {$options = "";}),可以合并成一次,让代码更简洁:
// 替换重复的isset判断 $options = get_option('fbcomments'); if (!isset($options) || empty($options)) { $options = ""; }
完整修正后的代码
这里是整体修正后的完整代码,你可以直接替换使用:
<?php //ADD XFBML add_filter('language_attributes', 'fbcomments_schema'); function fbcomments_schema($attr) { $options = get_option('fbcomments'); if (!isset($options) || empty($options)) { $options = ""; } if ($options == 'on') { $attr .= "\n xmlns:og=\"http://ogp.me/ns#\""; } if ($options == 'on') { $attr .= "\n xmlns:fb=\"http://ogp.me/ns/fb#\""; } return $attr; } //ADD OPEN GRAPH META function fbgraphinfo() { $options = get_option('fbcomments'); ?> <meta property="fb:app_id" content="<?php echo $options; ?>"/> <meta property="fb:admins" content="<?php echo $options; ?>"/> <?php } add_action('wp_head', 'fbgraphinfo'); function fbmlsetup() { $options = get_option('fbcomments'); if (!isset($options) || empty($options)) { $options = ""; } if ($options == 'on') { ?> <!-- Facebook Comments for WordPress --> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/<?php echo $options; ?>/all.js#xfbml=1&appId=<?php echo $options; ?>"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <?php } } add_action('wp_footer', 'fbmlsetup', 100); //COMMENT BOX function fbcommentbox($content) { $options = get_option('fbcomments'); if (!isset($options) || empty($options)) { $options = "off"; } // 你原来的代码在这里截断了,后面可以继续补充逻辑 return $content; }
内容的提问来源于stack exchange,提问作者EmBeePee
相关产品推荐
相关产品推荐

