带有\ n的字符串会导致以下变量错误

时间:2018-08-24 16:26:14

标签: php api mikrotik

我有一个变量,该变量中包含\n,空格和其他符号,并在我的代码中引起错误(注意:未定义的偏移量:0)。 我正在尝试通过API更新我的MikroTik路由器上的终端注释,但是当注释变量具有多行和\ n等时,它将导致其余代码无法正常工作并给我错误。 我该如何解决?

我的代码:

$config['routeros']['note'] = "\
    \n ------------------------------------------------------------\
    \n Warning! This device is secured by\
    \n   _____                          ____                     _ \
    \n  / ____|                        |  _ \\                   | |\
    \n | |  __  _ __  ___   ___  _ __  | |_) |  __ _  _ __    __| |\
    \n | | |_ || '__|/ _ \\ / _ \\| '_ \\ |  _ <  / _` || '_ \\  / _` |\
    \n | |__| || |  |  __/|  __/| | | || |_) || (_| || | | || (_| |\
    \n  \\_____||_|   \\___| \\___||_| |_||____/  \\__,_||_| |_| \\__,_|\
    \n                                              N E T W O R K S\
    \n ------------------------------------------------------------\
    \n  \
    \n Unauthorised access is prohibited and shall render the user \
    \n liable to criminal and/or civil prosecution.";

PHP文件的代码片段

print_r($ config);

的输出

Output of print_r($config);

2 个答案:

答案 0 :(得分:0)

使用heredoc。示例:

config['routeros']['note'] = <<< END
    ------------------------------------------------------------
    Warning! This device is secured by\
       _____                          ____                     _ 
      / ____|                        |  _ \\                   | |
     | |  __  _ __  ___   ___  _ __  | |_) |  __ _  _ __    __| |\
     | | |_ || '__|/ _ \\ / _ \\| '_ \\ |  _ <  / _` || '_ \\  / _` |
     | |__| || |  |  __/|  __/| | | || |_) || (_| || | | || (_| |\
      \\_____||_|   \\___| \\___||_| |_||____/  \\__,_||_| |_| \\__,_|
                                                  N E T W O R K S
    ------------------------------------------------------------
    Unauthorised access is prohibited and shall render the user
    liable to criminal and/or civil prosecution.
END;

答案 1 :(得分:0)

由于无法解决此问题,因此无法解决该问题,因此我现在提出了一个解决方案。我创建了一个检查路由器上文件的功能,如果存在,则跳过该功能,但是如果路由器上没有sys-note.txt文件,它将启用ftp服务(如果禁用),然后上传{{1 }}文件从服务器到路由器,然后仅在禁用ftp时才再次禁用ftp。