在将我的网站添加到新服务器后,我不断收到意外的文件结尾错误,但该文件与其原始来源相同

时间:2019-10-04 作者:Captain Dando

我有一个改变buddypress封面图像模板的脚本。该文件在我的服务器上运行良好,但当我将其移动到客户端服务器时,它就坏了。我一直在犯错误

Parse error: syntax error, unexpected end of file in /var/www/vhosts/womenschapter.com/httpdocs/wp-content/themes/jupiterx-child/buddypress/members/single/cover-image-header.php on line 102
虽然这两个站点的文件都是相同的,但我的工作非常完美。我还可以添加任意多的php结束标记,但仍然会出现相同的错误。我几乎觉得新服务器的配置可能会有所不同,但我在这里完全一无所知。

这是我的代码:

  <?php
/**
 * BuddyPress - Users Cover Image Header
 *
 * @since 3.0.0
 * @version 3.0.0
 */
?>

<div class="DMUserContent">

    <!-- New HTML -->
        <a class="DMImageColumn" href="<?php bp_displayed_user_link(); ?>">
            <?php bp_displayed_user_avatar( \'type=full\' ); ?>
        </a>

        <div class="DMContentColumn">
            <h3>MEET</h3>
            <?php if ( bp_is_active( \'activity\' ) && bp_activity_do_mentions() ) : ?>
                <h1>
                    <?php 
                    $DMName  = bp_profile_field_data( \'field=First Name\', bp_displayed_user_id() );
                    ?> <?php
                    $DMName .= bp_profile_field_data( \'field=Last Name\', bp_displayed_user_id() );
                    echo $DMName;
                    ?>
                </h1>
                <!-- <h5>@<?php // bp_displayed_user_mentionname(); ?></h5> -->
            <?php endif;
            ?>
            <h4><?php bp_profile_field_data( \'field=Job Title\', bp_displayed_user_id() ); ?> - <?php bp_profile_field_data( \'field=Company Name\', bp_displayed_user_id() ); ?></h4>
            <p class="DMSPshortDescription"><?php bp_profile_field_data( \'field=Short description of your services\', bp_displayed_user_id() ); ?></p>
            <div class="Divider"></div>
            <p class="DMSPWebLink"><?php echo bp_profile_field_data( \'field=Website\', bp_displayed_user_id()); ?></p>
            <div class="DMSPSocialMediaLinks">
                <?php
                if (bp_get_profile_field_data( \'field=Instagram name\', bp_displayed_user_id()) != null && bp_get_profile_field_data( \'field=Instagram name\', bp_displayed_user_id()) != "" ){ ?>
                    <a class="DMSPinstagram"  href=\'https://instagram.com/<?php echo bp_profile_field_data( \'field=Instagram name\', bp_displayed_user_id()); ?>\'>

                        <?php echo bp_profile_field_data( \'field=Instagram name\', bp_displayed_user_id()); ?></a>
                <?php
                } ?>

                <?php
                if (bp_get_profile_field_data( \'field=Facebook name\', bp_displayed_user_id()) != null && bp_get_profile_field_data( \'field=Facebook name\', bp_displayed_user_id()) != "" ){ ?>
                    <a class="DMSPfacebook" href=\'https://facebook.com/<?php echo bp_profile_field_data( \'field=Facebook name\', bp_displayed_user_id()); ?>\'>

                        <?php echo bp_profile_field_data( \'field=Facebook name\', bp_displayed_user_id()); ?></a>
                <?php
                } ?>

                <?php
                if (bp_get_profile_field_data( \'field=Twitter name\', bp_displayed_user_id()) != null && bp_get_profile_field_data( \'field=Twitter name\', bp_displayed_user_id()) != "" ){
                    ?>
                    <a class="DMSPtwitter" href=\'https://Twitter.com/<?php echo bp_profile_field_data( \'field=Twitter name\', bp_displayed_user_id()); ?>\'>

                        <?php echo bp_profile_field_data( \'field=Twitter name\', bp_displayed_user_id()); ?></a>
                <?php
                } ?>


                <?php
                if (bp_get_profile_field_data( \'field=Email\', bp_displayed_user_id()) != null && bp_get_profile_field_data( \'field=Email\', bp_displayed_user_id()) != "" ){
                    ?>
                    <a class="DMSPemail" href=\'mailto:<?php echo bp_profile_field_data( \'field=Email\', bp_displayed_user_id()); ?>\'>

                        <?php echo bp_profile_field_data( \'field=Email\', bp_displayed_user_id()); ?></a>
                <?php
                } ?>
            </div>
            <?php
            if ( bp_is_my_profile() ){
                ?> <a href="<?php bp_displayed_user_link()?>profile" class=\'WCStyleButton\'>Edit Profile</a>



                <?php }
            ?>
            <div id="item-header-content">

                    <?php
                    bp_nouveau_member_header_buttons(
                        array(
                            \'container\'         => \'ul\',
                            \'button_element\'    => \'button\',
                            \'container_classes\' => array( \'member-header-actions\' ),
                        )
                    );
                    ?>

                    <?php bp_nouveau_member_hook( \'before\', \'header_meta\' ); ?>



            </div>
        </div>


</div>

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

因此,问题已经通过注释解决,问题的当前状态已经包括更正的代码。但我想我应该把这个答案贴出来,作为对你、我和所有阅读这篇文章的人的提醒

首先,这里有一段有用的摘录an article on WP Engine:

“意外的文件结尾”错误不是WordPress特有的,任何基于PHP的网站上都可能发生。此特定错误意味着错误消息中提到的文件突然结束,没有正确的结束标记,因此无法解析代码。

下面是帮助解决问题的评论:

还有{?> (将其更改为{ ?>) 和)?> (将其更改为) ?>) - i、 e.再次添加空格(或新行,以更好的为准……)在?> (以及<?php).

并基于this answer on Stack Overflow, 我认为问题在于{?> 应该写为{ ?> (即一个左括号,后跟一个空格,然后是结束PHP标记)。

总之,you should not put brackets directly close to the opening/closing PHP tag, but separate it with a space:

// Bad
{?>
<?php}

// Good
{ ?>
<?php }
然而,关于这一点:“虽然两个站点的文件都是相同的,但我的工作非常完美。”;这可能是因为一些PHP安装/设置允许使用直接靠近开始/结束PHP标记的括号。因为我的第一个测试似乎就是在PHP 7.3(Windows)安装上进行的,只是我必须更改<?php; }<?php }, 但这可能只是问题中的一个拼写错误……)

相关推荐

将代码添加到unctions.php以根据登录状态有选择地显示样式有什么问题

当我尝试向函数添加以下代码时。php我不断收到错误(网站宕机,似乎表明有php错误)。我一直盯着这段代码看,似乎不明白为什么它在添加到函数时会出现错误。php。对我应该改变什么有什么建议吗?谢谢function hide_prompt() {    if(is_user_logged_in()) { echo \' <style> .app { display: none!important; } </style> \'