wordpress Parse error: syntax error, unexpected '')

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wordpress Parse error: syntax error, unexpected '')相关的知识,希望对你有一定的参考价值。

Parse error: syntax error, unexpected ''); ' (T_CONSTANT_ENCAPSED_STRING) in /Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-config.php on line 21

mac装wordpress,最后打开网站出现这个
下面是我的php文件,有大神帮我检查一下吗?

<?php
/**
* WordPress基础配置文件。
*
* 本文件包含以下配置选项:mysql设置、数据库表名前缀、密钥、
* WordPress语言设定以及ABSPATH。如需更多信息,请访问
* @link http://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
* 编辑wp-config.phpCodex页面。MySQL设置具体信息请咨询您的空间提供商。
*
* 这个文件被安装程序用于自动生成wp-config.php配置文件,
* 您可以手动复制这个文件,并重命名为“wp-config.php”,然后填入相关信息。
*
* @package WordPress
*/

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', ‘WordPress');

/** MySQL数据库用户名 */
define('DB_USER', ‘root');

/** MySQL数据库密码 */
define('DB_PASSWORD’, '');

/** MySQL主机 */
define('DB_HOST', 'localhost');

/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');

/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

/**#@+
* 身份认证密钥与盐。
*
* 修改为任意独一无二的字串!
* 或者直接访问@link https://api.wordpress.org/secret-key/1.1/salt/
* WordPress.org密钥生成服务
* 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
*
* @since 2.6.0
*/
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

/**#@-*/

/**
* WordPress数据表前缀。
*
* 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
* 不同的数据表前缀。前缀名只能为数字、字母加下划线。
*/
$table_prefix = 'wp_';

/**
* WordPress语言设置,中文版本默认为中文。
*
* 本项设定能够让WordPress显示您需要的语言。
* wp-content/languages内应放置同名的.mo语言文件。
* 例如,要使用WordPress简体中文界面,请在wp-content/languages
* 放入zh_CN.mo,并将WPLANG设为'zh_CN'。
*/
define('WPLANG', 'zh_CN');

/

define('DB_USER', ‘root');

root前面不是英文单引号,最好的是直接删除后等系统重新安装生成

参考技术A wp-config.php删除了重新安装一遍

注意:未定义变量 - WordPress / Parse Server Plugin - PHP 错误

【中文标题】注意:未定义变量 - WordPress / Parse Server Plugin - PHP 错误【英文标题】:Notice: Undefined variable - WordPress / Parse Server Plugin - PHP Error 【发布时间】:2018-01-04 00:03:16 【问题描述】:

因此,我正在为基于this Github project 的客户端构建一个 WordPress 插件,这将允许您从 WordPress 中提取帖子。

基本上我拉下了这个项目,我有几个错误。我一直在处理它们。我之前有posted a question here 与这堆中的第一个错误有关。我听取了用户“dipmala”的建议并解决了这个问题,但现在当我尝试运行“同步”功能时会弹出这个新问题。

注意:未定义的变量:选项 /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/WP-Plugin/includes/class-wp-parse-api-admin-settings.php 第 42 行

似乎同步失败。我认为我实施的修复之一是导致未分配变量之一。

(更新 - 我查看了 'cale_b' 提供的链接,但我确实相信真正的下划线问题超出了未定义的变量,正如 'benito' 在他的回复中提到的那样。我想得到下划线问题已修复,而不仅仅是绕过错误。)

如果有人能给我一些关于如何解决此问题的见解,以便插件成功同步到 Parse Server 实例,我将不胜感激。

Parse Server 由 Back4App 托管。

我已经发布了来自'class-wp-parse-api-admin-settings.php'here on PasteBin and below...的代码

<?php
if (!defined('WP_PARSE_API_PATH')) die('.______.');

if (is_admin())     // admin actions
    add_action('admin_menu', 'wp_parse_api_menu');
    add_action('admin_post_wp_parse_api_sync', 'wp_parse_api_sync');

    function wp_parse_api_menu() 
        add_options_page('Parse Api Options', 'Parse Api', 'manage_options', 'wp-parse-api-options', 'wp_parse_api_page');
        add_action('admin_init', 'wp_parse_api_admin_init');
    

    function wp_parse_api_admin_init() 
        //register our settings
        register_setting('wp-parse-api-settings-group', 'app_id');
        register_setting('wp-parse-api-settings-group', 'app_masterkey');
        register_setting('wp-parse-api-settings-group', 'app_restkey');
        register_setting('wp-parse-api-settings-group', 'app_url');
        register_setting('wp-parse-api-settings-group', 'app_push_notifications');
        register_setting('wp-parse-api-settings-group', 'object_name');
        register_setting('wp-parse-api-settings-group', 'lang');
    

    function wp_parse_api_page() 
        require WP_PARSE_API_PATH .'includes/class-wp-parse-api-admin-settings-template.php';
    

    function wp_parse_api_sync() 
        $numberposts = 10;

        if (isset($_GET['wp-parse-api-page'])) 
            $_GET['wp-parse-api-page'] = (int)$_GET['wp-parse-api-page'];
            if ($_GET['wp-parse-api-page'] < 1) $_GET['wp-parse-api-page'] = 1;

            $options = array(
            'numberposts' => $numberposts,
            'offset' => ($_GET['wp-parse-api-page'] * $numberposts) - $numberposts,
            );
        


        $wp_posts = get_posts($options);    
        if (count($wp_posts) == 0) 
            wp_redirect( 'options-general.php?page=wp-parse-api-options' );
            exit;
        

        foreach ($wp_posts as $wp) 
            if ($wp->post_status != 'publish') continue;

            $post = WpParseApiHelpers::postToObject($wp->ID);
            $q = new parseQuery(WP_PARSE_API_OBJECT_NAME);
            $q->whereEqualTo('wpId', $wp->ID);
            $q->setLimit(1);
            $result = $q->find();

            if ($result->results[0]) 
                $post->update($result->results[0]->objectId);
             else 
                $post->save();
            
        

        ++$_GET['wp-parse-api-page'];
        $url = $_SERVER['PHP_SELF'];

        foreach ($_GET as $k=>$v):
            $qs = (strpos($url, '?') === false ? '?' : '&');
            $url .= sprintf("%s%s=%s", $qs, $k, $v);
        endforeach;

        //wp_redirect( $url );
        echo "Page:". ($_GET['wp-parse-api-page']-1) ."<script> setTimeout(\"document.location='$url'\", 1000); </script>";
        exit;   
    

【问题讨论】:

Reference - What does this error mean in PHP?的可能重复 专业故障排除提示:错误消息包含超级有用的信息。它提到了第 42 行。在您发布的代码中,哪一行是第 42 行?很高兴知道... 专业故障排除技巧 #2:正确缩进代码使故障排除容易得多。花时间格式化/缩进代码,或者更好的是,使用 PHPStorm 之类的 IDE 来为您完成。 感谢 cal_b 的链接!我实际上放入了我看到的带有编号行的 Pastebin。希望有帮助! 【参考方案1】:

你的代码块内的代码:

if (isset($_GET['wp-parse-api-page'])) 
   // ...

未被调用。所以当你到达get_posts($options) 时,显然$options 并不存在。试着把它放在后面:

else 
    $options = array();

那么您可能还想调查为什么没有定义wp-parse-api-page GET 参数。正如有人回答您之前的问题,您应该在 wp-parse-api-page= 前面加上 ?或 & 后跟 URL 中的数字。您必须注意这一点,特别是因为稍后您无需再次检查它是否存在就这样做了:

++$_GET['wp-parse-api-page'];

最后,我建议您在代码中使用一致的缩进和格式。这样,您检查 GET 参数的块将更具可读性:

    if (isset($_GET['wp-parse-api-page'])) 
        $_GET['wp-parse-api-page'] = (int)$_GET['wp-parse-api-page'];
        if ($_GET['wp-parse-api-page'] < 1) 
            $_GET['wp-parse-api-page'] = 1;
        

        $options = array(
            'numberposts' => $numberposts,
            'offset' => ($_GET['wp-parse-api-page'] * $numberposts) - $numberposts
        );
    

【讨论】:

感谢贝尼托!几个问题......你说......“试着把它放在后面:else $options = array(); ”我应该把它放在哪里?在 "if (isset($_GET['wp-parse-api-page'])) // ... " 结束之后? 是的,就在那里。哦等等,我有个更好的主意:你可以把$options = array();(没有别的)放在之前这个块。 太棒了!那行得通!现在您能详细说明一下 wp-parse-api-page 吗?这会是插件生成的 WordPress 页面吗?我猜我会在里面放什么?指向 WordPress 站点或 Parse Server 的链接?再次感谢 很高兴知道它有效!但是至于您的第二个问题,这似乎与该插件的工作方式非常具体。潜入文档可能需要一段时间,而且我的时间很短!另外,为什么要修改插件?是因为它看起来很旧吗? 嘿贝尼托!我非常感谢您能提供的任何帮助。我可以将代码上传到 PasteBin 以便您可以看到它,但基本上该插件已设置为转到 Parse.com,但被 Facebook 关闭。所以我必须更改所有端点以转到 Parse-Server 实例,这是 Facebook 发布的开源版本。

以上是关于wordpress Parse error: syntax error, unexpected '')的主要内容,如果未能解决你的问题,请参考以下文章

注意:未定义变量 - WordPress / Parse Server Plugin - PHP 错误

Feign踩坑记录:JSON parse error

Parse error: syntax error, unexpected end of file

错误:ER_PARSE_ERROR:您的 SQL 语法有错误;

NodeJs Mysql 错误:ER_PARSE_ERROR 插入多个表

用C语言出现 parse error before '&' token 这种错误怎么解决?