PHP中空格字符的转义序列


Escape sequence for a space character in PHP

目前我使用的是下面的代码片段,它通过使用几个空格字符来缩进生成的HTML:

add_filter('get_search_form', 'filter_search_form');
function filter_search_form($form) {
    $form = '      <form role="search" method="get" id="searchform" action="' . home_url('/') . '"><input type="text" placeholder="' . __('Search') . '" value="' . get_search_query() . '" name="s" id="s"><input type="submit" id="searchsubmit" value="' . esc_attr__('Search') . '"></form>' . "'n";
    return $form;
}

现在我已经阅读了一些关于空白字符的内容('t表示制表符,'n表示换行符等),但我不完全确定如何在这种情况下实现这一点。我试过在单个空间使用's,但没有成功。

作为PHP的新手,我希望您能提供帮助(最好不要使用"正则"空格字符)。

根据http://php.net/manual/en/regexp.reference.escape.php,一般的十六进制转义序列'x20应该工作,'040(八进制)也应该工作。

不过,就我个人而言,我认为以这种方式指定空间没有多大好处(如果有的话),因为这会降低代码的可读性,IMHO。只需在你的单引号或双引号内插入文字空格(就像你现在所做的那样),就可以完成了

或者,如果您试图使用空白来缩进生成的HTML代码(看起来是这样),那么以't为单位这样做并不是世界末日。

't'n这样的字符需要用双引号。。。

$string = "'t" . '<form></form>';

如果您想在插入选项卡之前插入它,可以使用:

$string = "'t" . '<form>....';

(别忘了双引号,单引号不适用于''t、''n和朋友!)

如果你想要空间,就用空间吧!

$string = "        " . '<form>....';

这是html代码,因此它们将出现在页面的源代码中。它们不会"塌陷"在一个空间里。