在wp-config-sample.php中找到回车控制字符(^M)

时间:2020-08-13 作者:Dave White

在Linux发行版中新安装WordPress时,wp-config-sample.php 包含任何其他字符中都找不到的回车控制字符。发行版中的php文件。

跑步

egrep -l $\'\\r\'\\$ *.php
在WP的基本目录中,将仅返回wp-config-sample.php

我不担心消除控制字符,也不担心它会干扰安装操作(不会)。

我只是想知道为什么wp-config-sample.php 是唯一存在此异常的文件。

<小时/>WP versions
问题was reported 在版本4.6.15中。它仍然存在于最新版本5.5中

Environments
此行为已在中看到

仅限Debian 10 CLI Ubuntu 18.04.4 LTSWordPress distributions
安装文件已下载

作为。zip文件(例如wordpress-5.5.zip)或as。焦油gz文件(例如wordpress-5.5.tar.gz)

Downloads methods

<通过wget:wget https://wordpress.org/latest.zipwp core download
  • 通过Web浏览器(在GUI环境中)
    • Ubuntu 12.04.5 LTS的示例屏幕截图

      Ubuntu 12.04.5 tar.gz version


      AGoogle search 没有提供任何解释。我只找到了一个similar question 在WP支持论坛上,但给出的答复是;“别担心”;并没有对此做出解释。

    2 个回复
    最合适的回答,由SO网友:Dave White 整理而成

    来自Wordpress支持:

    它用于在传统的基于DOS的系统上进行格式化。一些基于DOS和Windows的编辑器如果没有这些额外的^M 回车符。基于UNIX的系统可以使用或不使用它们,这就是为什么它们无关紧要的原因。

    https://en.wikipedia.org/wiki/Newline

    这是该文件的一部分应该如何编辑的。

    // ** MySQL settings - You can get this info from your web host ** //
    /** The name of the database for WordPress */
    define( \'DB_NAME\', \'database_name_here\' );
    /** MySQL database username */
    define( \'DB_USER\', \'username_here\' );
    /** MySQL database password */
    define( \'DB_PASSWORD\', \'password_here\' );
    /** MySQL hostname */
    define( \'DB_HOST\', \'localhost\' );
    
    这是可读的。

    如果新用户使用Windows记事本编辑器,则文件可能会是这样的,尤其是在旧版本的Windows上。

    // ** MySQL settings - You can get this info from your web host ** ///** The name of the database for WordPress */define( \'DB_NAME\', \'database_name_here\' );/** MySQL database username */define( \'DB_USER\', \'username_here\' );/** MySQL database password */define( \'DB_PASSWORD\', \'password_here\' );/** MySQL hostname */define( \'DB_HOST\', \'localhost\' );
    
    这是一堆乱七八糟的东西。它仍然可以作为PHP文件使用,因为换行符不如; 在文件中。额外的^Ms将被忽略,对于那些其他编辑器应用程序,用户将看到他们可以解析和编辑的内容。

    SO网友:Pat J

    Unix和类Unix操作系统(如Linux)在其文本文件中使用不同的行尾。

    Windows和Unix文本文件的格式略有不同。在Windows中,行以换行符和回车ASCII字符结尾,但Unix只使用换行符。因此,某些Windows应用程序在Unix格式文件中不会显示换行符。同样,Unix程序可能会在Windows文本文件中显示回车符,每行末尾都有Ctrl-m(^m)字符。

    -发件人Convert between Unix and Windows text files

    大概您已经将在Windows上创建的文件复制到Linux机器上,因此在Linux上编辑文件时,您会看到Windows行结尾。

    The solution provided in your wordpress.org support post -- 使用dos2unix -- 会把它清理干净的。

    我不能确切地说为什么你的问题被否决,因为我不是被否决的选民,但如果我不得不猜测,我会说这是因为这是一个Windows/Linux问题,而不是一个专门与WordPress相关的问题。(是的,这是一个WordPress文件,但它与WordPress开发完全没有关系。)